※ 引述《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