2009-12-20 50 views
4

我試圖使用GDB和KDevelop的調試下,Knoppix的虛擬機控制檯應用程序。 KDevelop的和GDB別在我的斷點打破。我懷疑這是因爲他們沒有調試符號。如何使用Makefile for C生成調試符號? [Linux的]

如果我是正確的怎麼辦,我需要改變我的Makefile中創建這些。也許問題在別的地方?

問候, 林依晨

回答

11

在發送到編譯器和鏈接標誌-g。它的默認變量分別爲CFLAGSLDFLAGS

第二步:排除標誌-s-s意味着

+1

的「-g」選項,只需要給予通過CFLAGS宏的編譯器。沒有必要在LDFLAGS宏中使用它。 – 2009-12-21 03:12:53

+1

貨物邪教知識,我猜。在某個時候,我使用了一個鏈接器,它必須告訴*不*丟掉調試符號... – dmckee 2009-12-21 03:54:00

4

如果您能夠看到源和設置的斷點,那麼你可能有調試建立符號。但是,通常的順序是:

gcc -g -o (outputname) (source files...) 
gdb outputname 

給出關於您在做什麼以及您看到什麼消息的更多細節,我們可以更具體。

0

完整的例子是:

CFLAGS =-g 

all: program.o 
    gcc -o program program.o 

這裏的CFLAGS應用到編譯器和鏈接兩者。