我正在尝试通过LLDB调试OSX桌面应用程序(Mac os catalina 10.15.3)。
lldb path/to/Electron.app
>>> Current executable set to 'path/to/Electron.app' (x86_64).之后,我可以成功地将断点添加到调试器中,但当我尝试使用run或process launch运行应用程序时,它总是给我:
error: process exited with status -1 (Error 1)
另一个问题是连接到pid。它给了我一个错误,不能附加到进程。
lldb -p 41324
>>> error: attach failed: Error 1为什么我不能在调试器中反汇编程序?
发布于 2020-04-24 21:29:24
我只是找到了调试的方法,并且不会限制任何root可访问性……这是关于苹果的系统完整性保护https://support.apple.com/en-us/HT204899
如果您愿意禁用系统完整性保护,只需小心,并知道您在做什么。
本文介绍了如何禁用系统完整性保护https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d
发布于 2020-04-24 02:12:54
在macOS上,只有当进程将自己标记为愿意被调试时,调试器才能附加到该进程。Xcode通常构建具有此权限的Debug构建,而不使用此权限的发布构建。当lldb试图附加到一个不想被调试的进程时,这是您看到的错误。这是一个低信息错误,因为拒绝附加的代理与lldb隔离,无法给我们提供更多信息。
但是,请注意,您不需要运行程序来反汇编它。反汇编命令在加载二进制文件以及调试二进制文件时也有效。
https://stackoverflow.com/questions/61393040
复制相似问题