如何在Xcode的_WebThreadLockFromAnyThread上设置符号断点?

我使用Xcode 4.3.2和lldb作为我的debugging器。

我已经inheritance了一个包含从辅助线程调用UIKit的代码的项目,如以下日志消息所示:

2012-05-02 21:48:14.603 Appname Dev [77594:16e0f] void _WebThreadLockFromAnyThread(bool),0x8d5f810:从主线程或Web线程以外的线程获取Web锁。 不应该从辅助线程调用UIKit。

我已经清理了大部分从辅助线程进行UIKit调用的代码,但是我仍然偶尔会在日志中看到这条消息。 该应用程序没有崩溃,所以很难找出问题所在。

我想在_WebThreadLockFromAnyThread上设置一个断点,但是当我尝试使用以下命令设置符号断点时:

 b _WebThreadLockFromAnyThread 

debugging器告诉我:

断点设置 – 名称'_WebThreadLockFromAnyThread'断点创build:12:名称='_WebThreadLockFromAnyThread',地点= 0(待定)警告:无法解决断点到任何实际的位置。

我也尝试在断点导航器中使用UI创build符号断点,但是我不确定要为模块input什么。 当我将模块留空时,将创build断点,但是当日志消息出现在debugging控制台中时,断点仍然不会中断。

任何人都可以告诉我如何在_WebThreadLockFromAnyThread上添加断点,以及如何确定这个符号的定义模块?

只留下下划线。 b WebThreadLockFromAnyThread适用于lldb和gdb。 现在,这是Xcode 4.6,所以如果你被困在旧版本,我想这可能是4.6版本中没有的问题。

您可以尝试使用nm命令或类转储工具来定位模块。

最有可能没有你需要的符号,因为默认情况下xcode会产生一个“释放”版本,如果我是正确的,剥离使得exec文件更小的符号。 我不知道目前如何,但你需要find切换到“debugging”构build的选项,这将保证有所有这些可爱的符号等待你的分析。