我搜索一个工具或代码,允许我在 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