2012-08-28 78 views
0

我想用Xcode 4調試一個大的C++項目。我必須使用makefile運行可執行文件,所以我將該項目添加爲外部構建系統。該程序可以正常編譯並運行,並具有預期的輸出。如果我在編譯過程中編輯一個文件以產生錯誤,Xcode會注意到這一點並轉到正確文件中的正確行。問題在於系統不會停留在我設置的斷點處。停止在Xcode 4的外部構建中的斷點

我已經在方案中添加了可執行文件,如here所述。我已將所有源文件添加到項目中。我已經按照建議here將自定義工作目錄設置爲正確的工作目錄。我已經確定我認爲由Xcode構建的可執行文件確實是我的可執行文件,並且在將方案設置爲等待手動啓動並且沒有更改之後,我也嘗試過手動運行它。

當我設置斷點時,它們顯示爲藍色,因爲它們應該。

有人可以給我任何提示,我還有什麼可以嘗試?非常感謝!

回答

0

嘗試向g ++添加-g選項以包含調試信息。幫助我。

0

我也有同樣的問題。我包括在Makefile這條線,它的伎倆

#also include debug symbols 
CFLAGS+=-ggdb 
0

導入源文件時是否勾選了「如果需要複製文件」複選框?這似乎並不好。這就是讓我失敗的原因。我不得不刪除所有的源文件並重新導入它們,確保Xcode沒有單獨拷貝它們。這使得斷點工作。

我猜XCode無法將調試信息(-g/-ggdb)與它自己的源代碼副本或其他內容相關聯。

0

我有完全相同的問題(Xcode 8.3.3)但添加-ggdb到生成文件沒有解決它。我發現(經過很多痛苦)makefile正在清理.o文件作爲構建的一部分(rm -f $(OBJFILES))。事實證明,符號信息駐留在.o文件中,因此通過刪除它們,Xcode無法再進行調試。我注意到了這條線路,現在一切正常。我使用了-g標誌,它工作。任何與之戰鬥的人都應該確保.o文件位於正確的位置。