调试英特尔编译项目与GDB

Debugging Intel Compiled Project with GDB

本文关键字:GDB 项目 编译 英特尔 调试      更新时间:2023-10-16

我在Code::Blocks IDE中有一个简单的Hello World项目,我正在使用Intel c++编译器编译。

我已经在项目的构建设置中设置了编译器选项'/Zi',所以我可以用断点调试应用程序。然而,从来没有达到过断点。似乎在对象中找不到调试符号。

当我改为使用gcc编译器时,它们是正确到达的。

我在这里错过了什么?这不应该这样工作吗?

(更新)

似乎可以在Linux上工作,但不能在Windows上。我用英特尔编译器和正确的编译器选项运行了同样的测试,一个简单的项目,我可以达到断点。Windows出现问题有什么原因吗?

Windows出现问题的原因是什么?

在UNIX上,调试信息通常是完全文档化的,并且通常是标准的(例如Linux使用DWARF)。

在Windows上,Microsoft编译器使用。pdb(程序数据库)文件,这是完全没有文档记录和专有的。GDB不能使用它们

我不知道英特尔编译器生成的调试信息格式,但很可能格式是只有idb理解的

实际上,你不能将GDB与任何微软或英特尔编译器混合和匹配。