TIPSです。
SystemCプログラムはC++プログラムなのでGCCでコンパイルすることができます。なのでEclipse CDTのデバッガでできるはず…なのですが、デバッグを開始すると「ソースコードが見つからない」と怒られます。
これは以下の様な背景によります。SystemCにおいてはユーザープログラムのエントリーはsc_main()と定められています。そしてmain()はSystemCライブラリの中で暗黙に定義されているため、ユーザーからは見えません。一方、Eclipse CDTのDebug Configurationはデフォルトでmain()の先頭にブレークポイントを張ります。その結果、デバッガがSystemCプログラムをロードした後、ソースコード情報のないmain()で実行を停止するため、上記のようなメッセージが出てぎょっとすることになります。
わかってしまえば簡単な話です。
- ブーレポイントをmain()ではなくsc_main()に張る。
- main()を自分で定義する。
1の方法が一番きれいです。ただし、たまにしかSystemCを使わない人は、事情を忘れていて驚くかもしれません。また、不慣れな人にプロジェクトを渡す際に引継ぎの手間がかかります。
2.はソースコードがあまりきれいではありませんが、びっくりせずに済む方法です。この場合、SystemCの要件を満たすためにmain()は以下のようにします。
int main(int arg, char *argv[]) { // Make sure to set a break point to sc_main() sc_elab_and_sim(arg, argv); }