2013-11-24 42 views
0

我已經加入了-g選項生成文件是這樣的:Valgrind的不顯示行數

CFLAGS=-Wall -g 

all: 
     cc hello.c -o hello 
     cc badprog.c -o badprog 

當我編譯使用make:

cc hello.c -o hello 
cc badprog.c -o badprog 

我沒有看到-g選擇這裏。爲valgrind --track-origins=yes ./badprog結果是這樣的:

==14412== Conditional jump or move depends on uninitialised value(s) 
==14412== at 0x4E7D665: _itoa_word (_itoa.c:179) 
==14412== by 0x4E81B91: vfprintf (vfprintf.c:1654) 
==14412== by 0x4E880A8: printf (printf.c:34) 
==14412== by 0x400564: main (in /home/anr/Desktop/c programming/badprog) 
==14412== Uninitialised value was created by a stack allocation 
==14412== at 0x40052C: main (in /home/anr/Desktop/c programming/badprog) 
+0

這是一個沒用的「makefile」。你爲什麼不使用shell腳本? – MadScientist

回答

3

因爲CFLAGS沒有參考在編譯命令中編譯。修改你的Makefile爲:

CFLAGS=-Wall -g 

all: 
     cc hello.c $(CFLAGS) -o hello 
     cc badprog.c $(CFLAGS) -o badprog