2013-05-17 39 views
0

我在實習期間遇到了一個奇怪的問題。我的工作是使用C++編寫VTK代碼,並使用OSX 10.8.3。gdb沒有顯示正確的源代碼-l


當我想調試我的計劃,我跑了GDB和使用說明「文件」來載入我的程序,然後我用「清單」顯示源代碼,使由行號斷點。問題在於:這個怪異的gdb顯示了我甚至沒有包含在我的源代碼中的VTK頭文件的源代碼!


我的程序的名字被讀 我曾嘗試使用gdb read然後break read:15設置斷點,但GDB顯示「no source file named read」這太荒謬了! 我注意到,GDB工作得很好,我的Ubuntu 12.04,當我在linux的GDB使用file read,它只是顯示

Reading symbols from /Users/apple/Dev/VTKRead/bin/bin/read...done. 

但在我的OSX 10.8.3的怪異GDB它顯示

Reading symbols for shared libraries ......... done 
Reading symbols from /Users/apple/Dev/VTKRead/bin/bin/read...done. 

我認爲這是原因,我試圖通過在macport中安裝gcc4.8來更改編譯器來解決問題,但cmake似乎只接受蘋果的gcc。

回答

1

但gdb顯示「沒有源文件命名爲讀」這是荒謬的!

也就是說 rigiculous都:你很可能有一個源文件調用read。你所擁有的可能是read.ccread.cpp,所以請嘗試break read.cc:15

+0

謝謝你的回答!我已經嘗試過你的方法,並且不起作用。我的源文件名是read6.cpp,我厭倦了使用「break read6.cpp:15」osx的gdb也顯示「沒有名爲read6.cpp的源文件」關鍵問題是這個令人毛骨悚然的gdb無法加載源代碼。我懷疑osx上的gdb無法讀取蘋果的gcc的輸出文件。 – Democritus

0

這是我的錯誤:我沒有在ccmake中將build標籤設置爲「debug」,所以編譯器沒有將信息寫入文件。