2014-05-07 19 views
1

我在使用英特爾C++編譯器編譯的Code :: Blocks IDE中有一個簡單的Hello World項目。使用GDB調試英特爾編譯項目

我已經在項目構建設置中設置了編譯器選項'/ Zi',所以我可以用斷點調試應用程序。但是沒有達到斷點。 看來在對象內沒有找到調試符號。

但是,當我更改爲使用gcc編譯器時,它們已正確到達。

我在這裏錯過了什麼?不應該這樣工作嗎?

[更新]

似乎對Linux,但不能在Windows上工作。我使用英特爾編譯器和正確的編譯器選項運行了同樣的測試項目,並且我可以達到斷點。 Windows有什麼問題會有問題嗎?

+0

使用Intel編譯器附帶的Intel調試器('idb')。 –

+0

IDB似乎不能使用代碼:塊IDE不幸的,否則我會。 – DundeeDave

+0

確定 - 但您仍然可以在IDE之外使用它(即從命令行)。 –

回答

1

Windows有問題嗎?

在UNIX上,調試信息通常是完整記錄的,通常是標準的(例如Linux使用DWARF)。

在Windows上,Microsoft編譯器使用.PDB(Program Database)文件,這些文件完全沒有文檔和專有。 GDB不能使用它們。

我不知道英特爾編譯器生成的調試信息格式是什麼,但機會是只有可以理解爲idb

有效地,那麼您不能將GDB與任何Microsoft或Intel編譯器混合和匹配。

+0

我已更改爲使用與Code :: Blocks兼容的Microsoft Debugger CDB – DundeeDave