gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:52:57 25 4
gpt4 key购买 nike

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

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 Command Line Developer Tools 的父进程是 launchd.

最佳答案

Apple 提供的 CrashReporter 工具不会尝试将调试器连接到崩溃的程序。 Leopard 或类似版本中曾经有一个选项可以执行此操作(默认情况下未启用),但该功能已被 Mountain Lion(甚至可能是 SnowLeopard)关闭。我认为不可能在 Leopard 上安装任何带有 lldb 的 Xcode,因此它似乎不太可能是一个旧的 Apple CrashReporter 试图将调试器连接到应用程序。 OTOH,可以用另一个可以做到这一点的工具替换 Apple 的 CrashReporter 工具,并且一些第三方供应商确实这样做了。也许这就是正在发生的事情?

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

关于macos - Cocoa 应用程序尝试在崩溃时启动 lldb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20332171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com