Re: gdb 執行時行號不照順序,跳來跳去??

看板Programming作者 (小培培)時間18年前 (2007/04/07 10:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《tomhuang.bbs@bbs.sayya.org (阿培仔)》之銘言: : 我最近在除錯我寫的一個程式, : 除錯的過程中,發現 gdb 的行號不是照順序來,而是會前後亂跳, : 雖然稍微前後跑,但整體上還是有照流程在執行... : 我上網查了一下,這好像是因為下了最佳化 -Ox 的參數所致, : 可是,我程式的編譯過程只用了 -O0 -g3 參數,但還是一樣會亂跳... : 我的程式有用函式庫,如果連結的函式庫有最佳化,而自己寫的程式用 -O0 -g3, : 是不是還是會亂跳呢? : 請問大家,該如何解決比較好呢? : 我的環境: : MacOSX 10.4, Target: powerpc-apple-darwin8, : gcc version 4.0.1 (Apple Computer, Inc. build 5367), : GNU gdb 6.3.50-20050815 (Apple version gdb-573), : 函式庫:ImageMagick 6.3.3 03/29/07 Q16 (以 MacPorts 安裝) 我是原作者,今天 Sayya BBS 好像沒開,上來 ptt 回文... 我現在知道為什麼會這樣了!! 原來是因為 Wand-config 的緣故! 編譯參數如下: -O0 -g3 -Wall `Wand-config --cflags` 而後面的 `Wand-config --cflags` 原來是產生 -g -O2 -Wall -W -D_THREAD_SAFE 難怪會出問題了… 所以看起來,gcc 遇見相同選項但下不同參數,以後面的為優先..? 有空我再查查 gcc manual.. 或是有高手要直接教一下 gcc 如何決定選項優先順序也不錯! ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.232.78.47
文章代碼(AID): #165mW_Bv (Programming)
文章代碼(AID): #165mW_Bv (Programming)