我在Code :: Blocks IDE中有一个简单的Hello World项目,我正在使用英特尔C ++编译器进行编译。
我在项目Build Settings中设置了编译器选项'/ Zi',因此我可以使用断点调试应用程序。但是没有达到任何断点。 似乎在对象中找不到调试符号。
但是,当我更改为使用gcc编译器时,它们已正确到达。
我在这里缺少什么?这不应该是这样的吗?
[更新]
似乎可以在Linux上运行,但不能在Windows上运行。我使用英特尔编译器和正确的编译器选项运行相同类型的测试,我可以达到断点。 Windows会出现问题吗?
答案 0 :(得分:1)
是否有某些原因导致Windows出现问题?
在UNIX上,调试信息通常是完整的文档,通常是标准的(例如Linux使用DWARF)。
在Windows上,Microsoft编译器使用完全未记录且专有的.PDB(Program Database)文件。 GDB无法使用它们。
我不知道英特尔编译器生成的调试信息格式,但idb
可能 。{/ p>
有效的是,您无法将GDB与任何Microsoft或Intel编译器混合搭配。