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

问题描述 投票:-2回答:2

我搜索一个工具或代码,允许我在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
c global-variables
2个回答
0
投票

在大多数情况下足够的最简单的方法是使用例如输出变量。来自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 */

0
投票

您可以执行以下操作:

#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
© www.soinside.com 2019 - 2024. All rights reserved.