我搜索一个工具或代码,允许我在C中执行一个函数后检索全局变量内容的历史记录。
我尝试使用一些工具分析,但它不适用于语言C
例如,我有这个代码:
int a =1;
int b =1;
for (i=1;i++;i<4){
a = a+i;
b = b*i;
}
我希望在exécution之后显示结果或这样的报告:
a=1 | b=1
a=2 | b=1
a=4 | b=2
a=7 | b=6
在大多数情况下足够的最简单的方法是使用例如输出变量。来自printf
标题的stdio.h
:
int a =1;
int b =1;
for (i=1;i++;i<4){
printf("%d %d\n", a, b);
a = a+i;
b = b*i;
}
printf("%d %d\n", 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 = %d\n", a); (*pa)
#define b printf("b = %d\n", 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