2012-06-29 13 views
5

私が作業しているプロジェクトがあり、複数のファイルがあり、makeを使ってプロジェクトをコンパイルします。ここで私はいくつかの場所でbreakpointを設定し、そこnextフォームを行うが、私は関数gdbを終了するまで単一のステップ実行

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

bf_dup_eleminate_readを得るメイク

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) 

bloom-filter.c内の関数です。 bloom-filter.cが適切なオプションでコンパイルされていても、なぜこれが起こっているのか理解できません。

答えて

5

-gフラグはありません。デバッグ情報を出力するようにコンパイラに通知するので、gdbに行番号を表示させたい場合は、コンパイル行に追加する必要があります。

+0

'ggdb'フラグについて –

0

gdbを更新してください。お使いのgccバージョンが新しくなった可能性があります。私は同じ問題を抱え、gdbを更新した後に修正しました。