我有一个程序是在 linux (Ubuntu 10.10) 下用 C++ 编写的。
在我将以下几行添加到代码之前,编程和调试工作完美无缺:
mapfile = fopen(map_filename,"wb");
fwrite(map_header,1,20,mapfile); // <-- this is the problem line
fclose(mapfile);
在我添加这些之后,程序编译正常,但现在调试器无法启动。它立即失败并显示此消息:
Program completed, Exit code 0x177
error while loading shared libraries: unexpected PLT reloc type 0xcc
如果我删除带有“fwrite”的行,调试器将正常启动。
这个问题只发生在 Netbeans 内部。 当我使用命令行“gdb”调试它时,它也可以正常工作,没有任何问题。
有人知道为什么会发生这种情况以及如何解决它吗?
P.S:这些问题是最近才出现的,所以我认为它可能与系统更新有关,我不确定。
最佳答案
发现问题:
不久前,我从 netbeans 中删除了一些旧的 C++ 项目。它发现 netbeans(至少 v7.0)会记住我在 IDE 中甚至不再存在的旧项目上设置的所有断点。
我通过查看调试器控制台(Window->Debugging->Debugging Console)并看到当“gdb”启动时,它试图从其他项目或不存在的项目中设置所有这些断点(这是 netbeans 中的一个错误,顺便说一句)
解决方案:我只是清除了所有断点(在 Window->Debugging->Breakpoints 内),现在程序可以正常调试了。
希望这对遇到类似问题的任何人有所帮助。
关于c++ - Netbeans v7 C++ 调试器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27623562/