我试图在执行程序后在用 C 编写的目标程序中获取执行语句的序列,但我找不到方法。我不需要在运行时获取执行语句的序列。有没有办法做到这一点?仅供参考,我知道 gcov 报告语句覆盖率,但据我所知,它不报告目标程序中执行语句的序列(我只想在目标程序源代码中获取执行语句的序列)。我正在使用 gcc 编译器在 Linux 中运行 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 (由于我要跟踪的目标程序在一行上只有一个语句,所以作为输出的行号序列对我来说就足够了)
几个小时前有人向其他人提出了这个问题(请参阅问题),但没有明确答案的一些读者将其关闭。如果它有众所周知的解决方案,请告诉我。