如何获得“编码"OSX上的gdb?

2021-12-06 00:00:00 debugging macos gdb code-signing c++

因为我需要一个支持 Python 的 gdb,所以我通过

Because I need a Python-enabled gdb, I installed another version via

brew tap homebrew/dupes
brew install gdb

我想在 Eclipse CDT 中使用这个 gdb,我在调试设置中输入了二进制文件的路径.但是,启动调试程序失败并显示以下消息:

I want to use this gdb with Eclipse CDT, where I entered the path to the binary in the Debugging settings. However, launching a program for debugging fails with the following message:

Error in final launch sequence
Failed to execute MI command:
-exec-run
Error message from debugger back end:
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

在这种情况下,codesigned"是什么意思?我怎样才能让这个 gdb 运行?

What does "codesigned" mean in this context? How can I get this gdbrunning?

推荐答案

看来您需要对可执行文件进行签名.有关更多信息,请参阅这些链接.如果您不打算重新分发该版本的 gdb,您应该能够摆脱自签名.

It would seem you need to sign the executable. See these links for more information. You should be able to get away with self signing if you don't plan on redistributing that version of gdb.

https://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html

https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/codesign.1.html

或者,您可以在系统上禁用代码签名,尽管这会带来安全风险.为此,请尝试在终端中运行 sudo spctl --master-disable.

Alternatively, you could disable code signing on your system, although this presents a security risk. To do so try running sudo spctl --master-disable in the Terminal.

相关文章