我的平臺是ubuntu的i686的(32個比特)GCC與作爲-LD用於調試目的,而不是擊中的gdb斷點
如果我編譯gcc驅動一彙編源與調試選項:
gcc -nostartfiles -g -o toupper toupper.s
我打開用gdb調試的可執行TOUPPER上集成
$ emacs toupper.s-> M-x gdb -> M-x gdb-many-windows
我產生於第一instruccion斷點與
012 Emacs編輯器(gdb) b _start
(gdb) run
當我開始室內用執行運行命令_start標籤上的調試器停止,正確。
如果我編譯爲彙編器和鏈接使用ld鏈接器相同的源toupper.s:
as -g -o toupper.o toupper.s
ld -o toupper toupper.o
現在進行調試的步驟相匹配的gcc的情況。
$ emacs toupper.s -> M-x gdb -> M-x gdb-many-windows
(gdb) b _start -> mark with a red point the _start line
(gdb) run -> DONT HIT THE _start LINE ¿?
我看到符號表是正確的,斷點標記它是正確的,但執行不是一步一步的。
我已經在海灣合作委員會的情況下顯示去詳細步驟和AS/LD情況下再次嘗試過,但結果是一樣的
¿存在着不匹配的AS/LD情況下對GCC情況下,一些默認的選項?
在此先感謝
是您的問題,調試器不會停止在斷點? – 2012-01-29 15:19:56
順便說一句,爲什麼使用-nostartfiles?它可以編譯。 – 2012-01-29 15:26:48