2013-11-24 2 views
0

Я добавил опцию -g в Makefile так:Valgrind не показывает номера строк

CFLAGS=-Wall -g 

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

Когда я компилирую с помощью сделать:

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». Почему бы вам просто не использовать сценарий оболочки? – MadScientist

ответ

3

Поскольку CFLAGS не относятся введенные в команды компиляции. Измените свой Makefile на:

CFLAGS=-Wall -g 

all: 
     cc hello.c $(CFLAGS) -o hello 
     cc badprog.c $(CFLAGS) -o badprog 
Смежные вопросы