我目前正在运行 Ubuntu Raring Ringtail x86。全新安装和更新后,我根据“Learning C The Hard Way”教程中的说明安装了 Valgrind 3.8.1。但是,我可以运行 Valgrind,而不是在代码中给出错误的行号,它只会给我这个:
==9300== by 0x4060714: (below main) (libc-start.c:227)
完整的 Valgrind 报告在这里: http: //pastebin.com/1spmkFrU
我确定我正在使用 -g 标志,并且使用--track-origins=yes只会显示错误函数的开始位置,而不是函数内错误的位置。(这是使用--track的结果: http : //pastebin.com/ktvY8HEM )
这是我正在尝试使用的生成文件和代码:
生成文件:
CFLAGS=-Wall -g
EXECUTABLES=ex1 ex3 ex4
all: $(EXECUTABLES)
clean:
rm -f $(EXECUTABLES)
代码:
#include <stdio.h>
/*This program is purposefully broken */
int main()
{
int age = 10;
int height;
printf("I am %d years old.\n");
printf("I am %d inches tall.\n", height);
return 0;
}