2011-01-14 184 views
11

有沒有人使用gcc編譯器混合使用-g(調試符號)和-O2(最安全的優化)?
我必須調試分發給最終用戶的發佈程序的崩潰,這可能會將我發回核心文件。
我一直習慣叫:在gcc中使用-g和-O2選項

GDB < < myprogram >> < <核心文件>>

,看看那裏的麻煩。現在我只能看到通話記錄,但沒有調試符號,我很煩惱。

有什麼想法?

回答

6

我們在生產環境中一起使用,這使得如果客戶只看到一次崩潰,調試變得更容易。它給了你一個很好的主意,問題在哪裏(不是如果它是內存損壞)。

理論上,添加-g應該不會影響性能,儘管可執行文件變大了。在嵌入式環境中,這是一個很大的折衷。

10

它工作正常。或者,由於優化,有時你用調試器進行的源代碼與源代碼完全不匹配,但是恕我直言,儘管這有調試符號,這使調試變得更容易。

+4

此外,有時源代碼行的執行順序讓我感到困惑。 – mkb 2011-01-14 15:33:06

+0

我習慣於這種行爲調試VC版本代碼。 即使我聲明-g ... 我只是徘徊如果代碼是優化的,即使我聲明-g ... – 2011-01-14 16:24:05