精華區beta Programming 關於我們 聯絡資訊
※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言: > ※ 引述《tomhuang.bbs@bbs.sayya.org (阿培仔)》之銘言: > > 最近寫了個程式,裡面我用了滿多 #define 來宣告一些常數, > > 可是後來在 debug 時發現,#define 的常數沒辦法看到內容, > > 在 Linux 中的 gdb 可以用 macro exp SOME_CONSTANT 展開, > > 可是還是滿麻煩的,它只是展開而不做計算...所以看到一些 > > 四則運算式。 > 其實還是可以在 gdb 裡面用 print 或 printf 印出計算結果, > 記得用 -g3 -gdwarf-2 編譯你的程式。 > 只是還是沒辦法 step into 到 macro 裡面。 順便一提... 這個 -gdwarf-2 參數似乎只在 Linux 有效.. 我在 FreeBSD 和 MacOSX 裡面試過,不能用該參數,也不能把 macro 展開,在這兩個環境對含有許多 macro 的程式做 debugging 似乎是滿麻煩的事... 還有,在 Linux 中就算不加 -gdwarf-2 參數,還是可以展開 macro,那加了這個參數是什麼意思呢? -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: 140.124.181.134