C言語で書かれたターゲットプログラムを実行後、実行文の並びを取得したいのですが、方法がわかりません。実行時に実行されたステートメントのシーケンスを取得する必要はありません。それを行う方法はありますか?参考までに、gcov がステートメント カバレッジをレポートすることは知っていますが、私の知る限り、ターゲット プログラムで実行されたステートメントのシーケンスはレポートしません (ターゲット プログラムのソース コードでのみ実行されたステートメントのシーケンスを取得したい)。Linuxでgccコンパイラを使用してCプログラムを実行しています:)
明確に理解するには、次の例を参照してください。
次のプログラムを実行すると、実行されたステートメントのシーケンスを次のように取得したいと考えています。
1: int main()
2: {
3: int a = 10;
4: printf("hello");
5: if( a == 10){
6: printf("a == 0");
7: }else{
8: printf("a != 0");}
9: return 0;
10: }
取得したい出力は次のとおりです: 34569 (トレースしたいターゲット プログラムは 1 行に 1 つのステートメントしかないため、出力としての行番号のシーケンスで十分です)
この質問は数時間前に他の人に尋ねられましたが (質問を参照)、明確な回答が得られずに数人の読者によってクローズされました。よく知られている解決策があれば教えてください。