IM在gdb的一點點新手,所以在這裏不用任何堆棧:GDB給出了一個簡單的std :: string未捕獲的異常
進出口工作的CPP單元測試運行現在。我嘗試使用無效參數(如null_char)構造字符串對象,但程序預計會給出例外:)。當我嘗試使用gdb調試應用程序時,我在崩潰後鍵入bt,但它沒有給出消息。 任何想法爲什麼可能發生?提前致謝。
IM在gdb的一點點新手,所以在這裏不用任何堆棧:GDB給出了一個簡單的std :: string未捕獲的異常
進出口工作的CPP單元測試運行現在。我嘗試使用無效參數(如null_char)構造字符串對象,但程序預計會給出例外:)。當我嘗試使用gdb調試應用程序時,我在崩潰後鍵入bt,但它沒有給出消息。 任何想法爲什麼可能發生?提前致謝。
將-g
選項添加到您的編譯器命令行以添加調試符號。這對gdb
有很大的幫助。
和-O0也有幫助 - 有時優化會使調試中看到的代碼路徑相當「狂野」=) – rasjani 2010-08-13 08:58:00
感謝您的提示,那太棒了! – 2010-08-13 09:21:57
我一步一步地進入代碼,我認爲我處於調試模式,所以沒有我認爲的優化。 – LostMohican 2010-08-13 11:33:25
也許堆棧只是沒有用,因爲異常不會被捕獲?請注意gdb中的catchpoints:
catch throw
在拋出異常時會中斷。
catch catch
當發現異常時中止。
你用'-g'編譯過嗎? – David 2010-08-13 08:16:05
您是使用發行版還是調試版本來調試核心文件? – DumbCoder 2010-08-13 08:24:13
我正在使用構建腳本,該腳本默認以調試模式構建項目。 – LostMohican 2010-08-13 11:31:51