Macos Cocoa应用程序尝试在崩溃时启动lldb?

Macos Cocoa应用程序尝试在崩溃时启动lldb?,macos,cocoa,debugging,osx-mavericks,lldb,Macos,Cocoa,Debugging,Osx Mavericks,Lldb,一些用户报告说,有时当我的应用程序崩溃时,服务器会收到如下消息框: The lldb command requires the command line developer tools. Would you like to install the tools now? 在我的代码中,崩溃(SIGABRT)看起来像是一种竞争条件。但为什么在这种情况下,它似乎试图启动lldb?我从来没有见过这样的东西,它对一些用户来说似乎是相当孤立的,我不能在本地复制——尽管我确实安装了开发人员工具 这几乎就像.

一些用户报告说,有时当我的应用程序崩溃时,服务器会收到如下消息框:

The lldb command requires the command line developer tools. Would you like to install the tools now?
在我的代码中,崩溃(SIGABRT)看起来像是一种竞争条件。但为什么在这种情况下,它似乎试图启动
lldb
?我从来没有见过这样的东西,它对一些用户来说似乎是相当孤立的,我不能在本地复制——尽管我确实安装了开发人员工具

这几乎就像.NET中的JIT调试,但我从未在Cocoa中听说过这一点,我在Google上的搜索也没有结果


编辑:

如果我运行
ps
我们可以看到
问题报告程序
安装命令行开发人员工具

19582   0.0  0.4  2568032  33224   ??  S    10:22AM   0:00.72 /System/Library/CoreServices/Problem Reporter.app/Contents/MacOS/Problem Reporter
19579   0.0  0.2  2531748  13276   ??  S    10:22AM   0:00.16 /System/Library/CoreServices/Install Command Line Developer Tools.app/Contents/MacOS/Install Command Line Developer Tools

名单上没有其他可疑的东西。如果我使用
-f
开关运行
ps
,我可以看到
Install命令行开发工具
的父进程是
launchd

苹果提供的CrashReporter工具不会尝试将调试器连接到崩溃的程序。以前在Leopard或其附近有这样一个选项(默认情况下不启用),但山狮(甚至可能是雪豹)关闭了该功能。我认为不可能在Leopard上安装任何包含lldb的Xcode,因此似乎不太可能是一个旧的Apple CrashReporter试图将调试器连接到应用程序。OTOH,有可能用另一个可以做到这一点的CrashReporter工具取代苹果的CrashReporter工具,一些第三方供应商也可以做到这一点。也许这就是发生的事情


如果您让看到此对话框的用户在对话框出现时向您发送“ps auwwx”的输出,您可能会发现罪魁祸首。

谢谢您的评论,这非常有趣。我将尝试获取正在运行的进程的输出…我编辑了这些信息。这似乎是标准的苹果问题记者造成的。我确实参考了一些在运行时修改problem reporter的工具,但没有任何工具在10.9这样的新操作系统上运行……我一眼就看不出这是如何在10.9上发生的。这很奇怪,值得一提。我已经与苹果公司展开了一场支持事件