索诺玛 14.5,M3。 lldb-1500.0.404.7,Apple Swift 版本 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)。 (我是一个古老的linux用户。)
我想在调试器中运行(别人的)应用程序。 由于某种无法解释的原因,在我的一台计算机上,该程序在 2 秒后就关闭了。 这在 Linux 上曾经很简单:
# sudo gdb program
,然后输入 run
。 也许在_exit
处插入一个断点。 这真的是我想做的。
我不明白这在 Macos 上是如何工作的。 让我尝试使用 Brett Tepstra 出色的“Marked 2”查看器来完成此操作。
$ sudo lldb /Applications/Marked\ 2.app/Contents/MacOS/Marked\ 2
(lldb) target create "/Applications/Marked 2.app/Contents/MacOS/Marked 2"
Current executable set to '/Applications/Marked 2.app/Contents/MacOS/Marked 2' (arm64).
$ sudo lldb /Application/Application-Name.app/Contents/MacOS/Application-Name
似乎加载了很多符号,然后我得到下一个提示。
(lldb) target create "/Applications/Marked 2.app/Contents/MacOS/Marked 2"
Current executable set to '/Applications/Marked 2.app/Contents/MacOS/Marked 2' (arm64).
(lldb) run
error: process exited with status -1 (attach failed (Not allowed to attach to process. Look in the console messages (Console.app), near the debugserver entries, when the attach failed. The subsystem that denied the attach permission will likely have logged an informative message about why it was denied.))
我喜欢清晰的错误消息。 这不是其中之一。
好的,我打开
Console.app
。 控制台中显示了很多不同的内容,但 debugserver
不是其中之一。 在右上角搜索字段中搜索 debugserver
(或 lldb
或 Marked
)也不会显示任何内容。
如何在调试器中运行应用程序并看到它失败或完成?
是否可以告诉
lldb
像古代的gdb
那样行事。 我只想让 gdb 运行我提供的可执行文件。
macOS 上的 lldb 必须进行协同签名。 请参阅https://opensource.apple.com/source/lldb/lldb-69/docs/code-signing.txt