在执行代码 C 后检索全局变量内容的历史记录



我搜索一个工具或代码,允许我在 C 中执行功能后检索全局变量内容的历史记录。

我尝试使用一些工具分析,但它不适用于语言C

例如,我有以下代码:

int a =1;
int b =1;
for (i=1;i++;i<4){
    a = a+i;
    b = b*i;
}

我想在执行后显示这样的结果或报告:

 a=1  |  b=1
 a=2  |  b=1
 a=4  |  b=2
 a=7  |  b=6

最简单的方法,在大多数情况下就足够了,是使用以下变量输出,例如 stdio.h标头中的printf

int a =1;
int b =1;
for (i=1;i++;i<4){
    printf("%d %dn", a, b);
    a = a+i;
    b = b*i;
}
printf("%d %dn", a, b); /* for the last set of values */

你可以做下面的事情:

#include "stdio.h"
int a = 1;
int b = 1;
#if DEBUG_HISTORY
int * pa = &a;
int * pb = &b;
#define a printf("a = %dn", a); (*pa)
#define b printf("b = %dn", b); (*pb)
#endif
int main()
{
  int i;
  for (i=1; i<4; i++)
  {
    a += i;
    b *= i;
  }
}

使用选项 -DDEBUG_HISTORY 编译并获得:

a = 1
b = 1
a = 2
b = 1
a = 4
b = 2

相关内容

  • 没有找到相关文章

最新更新