2012-06-29 6 views
5

Ich habe ein Projekt, an dem ich arbeite und es hat mehrere Dateien und ich verwende make, um das Projekt zu kompilieren. Hier ist die Make-DateiEinzelschritt bis zum Verlassen der Funktion gdb

CC = /opt/gcc-4.7-cilkplus/bin/gcc 
CFLAGS = -ggdb3 -Wall 
COMPLILEFLAGS = `mysql_config --include` -I/opt/gcc-4.7-cilkplus/include/ 
LINKERINFO = `mysql_config --cflags --libs` -lrt -lm -lz 
CILKFLAGS = -lcilkrts 

# To be provided at the commandline 
DIR = './bloom' 
MODE = '2' 
FILENAME = 'database.info' 

exec: main.o mysql-client.o databaseConnection-common.o murmurhash3.o bloom-filter.o md5.o auxilary-functions.o 
    $(CC) $(CFLAGS) -o exec main.o mysql-client.o databaseConnection-common.o murmurhash3.o bloom-filter.o \ 
    md5.o auxilary-functions.c $(LINKERINFO) $(CILKFLAGS) 

main.o: main.c mysql-client.h databaseConnection-common.h bloom-filter.h 
    $(CC) $(CFLAGS) $(COMPLILEFLAGS) -c main.c $(CILKFLAGS) 

bloom-filter.o: bloom-filter.c bloom-filter.h murmurhash3.h auxilary-functions.h 
    $(CC) $(CFLAGS) $(COMPLILEFLAGS) -c bloom-filter.c 

murmurhash3.o: murmurhash3.c murmurhash3.h 
    $(CC) $(CFLAGS) -c murmurhash3.c 

md5.o: md5.c md5.h 
    $(CC) $(CFLAGS) -c md5.c 

mysql-client.o: mysql-client.c mysql-client.h databaseConnection-common.h 
    $(CC) $(CFLAGS) $(COMPLILEFLAGS) -c mysql-client.c 

databaseConnection-common.o: databaseConnection-common.c databaseConnection-common.h 
    $(CC) $(CFLAGS) $(COMPLILEFLAGS) -c databaseConnection-common.c 

auxilary-functions.o: auxilary-functions.h auxilary-functions.c 
    $(CC) $(CFLAGS) -c auxilary-functions.c 

run: 
    ./exec $(MODE) $(FILENAME) $(DIR) 

I breakpoint an irgendeiner Stelle gesetzt und dann tun next Form gibt, aber ich bekomme

Single stepping until exit from function bf_dup_eleminate_read, which has no line number information.

bf_dup_eleminate_read ist eine Funktion in bloom-filter.c. Ich kann nicht verstehen, warum das passiert, auch wenn bloom-filter.c mit geeigneten Optionen kompiliert wird

Antwort

5

Ich sehe nirgends die -g Flagge. Er informiert den Compiler, Debugging-Informationen auszugeben. Sie müssen ihn daher zur Kompilierungszeile hinzufügen, wenn Sie möchten, dass gdb Ihnen Zeilennummern anzeigt.

+0

was ist mit 'ggdb' Flag –

0

Versuchen Sie, Ihre gdb zu aktualisieren. Es könnte sein, dass Ihre gcc Version zu neu war. Ich habe das gleiche Problem und reparierte es nach dem Update meiner gdb.

Verwandte Themen