我的主目录中有一个相当大的.gdbinit (因此这里没有复制)。
现在,如果我想在Xcode中调试代码,我会得到这个错误:
Failed to load debugging library at:
/Developer/Applications/Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin/Contents/Resources/PBGDBIntrospectionSupport.A.dylib
Custom data formatters are disabled.
Error message was:
0x1005c5 "dlopen(/Developer/Applications/Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin/Contents/Resources/PBGDBIntrospectionSupport.A.dylib, 16): image not found" 实际上-如下面所述-调试仍然在Xcode中工作,但数据格式中断。移出.gdbinit或禁用Data Formatters确实会让Xcode中的gdb恢复工作状态,但这显然是一种痛苦(包括第一种情况下的Data Formatters )。
你知道gdbinit中的哪些设置会在Xcode中导致这个错误吗?
回复中的注释:在链接到wxWidgets库时,似乎(通过谷歌搜索)可能会发生此错误。一些我没在这里做的事。
注意:如果需要,我可以提供我的(长) .gdbinit的副本
WIP:我会查看我的.gdbinit的详细信息,看看是否可以缩小问题的范围
发布于 2008-09-30 16:16:19
我的简短回答是:
您可能已经注意到了这一点,但以防万一:
首先,即使您看到了这个错误(假设您单击了它并继续),那么您应该仍然能够在中使用99%的调试特性。换句话说,该错误意味着对于给定的调试会话,只有很小的、特定的调试器部分“中断”。not意味着对于给定的程序执行,调试是完全关闭的和/或不可能的。
鉴于上述事实,如果您只是想摆脱错误,而不关心自定义数据格式是否正常工作,则删除以下菜单项旁边的复选标记:
我的“长长”答案是:
我办公室的开发人员已经经历了很长一段时间的Xcode错误,直到有人发现是一些第三方库导致的。
在我们的例子中,这个错误只发生在使用wxWidgets的项目中。我并不是在暗示wxWidgets的使用是唯一可能的原因。我只是试图提供更多的信息,这些信息可能会为您的案例带来正确的解决方案。
同样有趣的是:我们(在我的办公室)在没有使用或存在任何.gdbinit文件的情况下收到了这个错误。
事实证明,触发此错误的wxWidgets的“属性”与“dlopen”的“自定义/通用”实现有关。在MacOSX10.3之前,操作系统中没有提供dlopen,因此显然一些库编写了自己的版本。当使用这样的库时,尝试打开PBGDBIntrospectionSupport.A.dylib的dlopen调用显然会失败。
Read through the comments on this sourceforge patch submission to learn even further details about dlopen in 10.3 and beyond.
此外,这里还有另一个相关链接:
Message on the Xcode users mailing list about PBGDBIntrospectionSupport and Custom Data Formatters
发布于 2008-09-30 01:01:24
奇怪的是。环顾我的Mac,我发现这个库很好,而且看起来很正常。
您是否尝试过使用dtrace查看Xcode和GDB在错误发生时尝试执行的操作?
发布于 2009-01-23 01:40:09
您的错误实际上与我在使用wxWidgets时得到的错误略有不同。自从我发现dlopen冲突已经有一段时间了,但我确实记得我必须在那个特定的调试会话中使用gdb本身来弄清楚发生了什么。此外,对于wxWidgets问题,十六进制地址每次都不同。
在gdb中,对错误消息中的十六进制地址调用"info symbol“。这可能会给你提供关于加载失败的确切细节。
https://stackoverflow.com/questions/145765
复制相似问题