问题的原始形式(不完全是问题本身(:找不到进程ID的Mach任务端口:(os/kern(失败(0x5(。 (请检查GDB是共同设计的 - 请参阅任务门控(8((
我希望有人提到他们拥有的有关在没有 sudo 的情况下运行 gdb 的能力的任何信息,但只是运行就可以了。
我已经按照 https://github.com/cs01/gdbgui/issues/55 和大多数相关的堆栈溢出和OSXdaily提要中的说明进行操作,我已经找到了大约一周的时间。我知道有很多关于此错误的文档,但到目前为止,还没有人发布这些输出并正在运行 Catalina。我在Mac OSX Catalina 10.15.1上运行gdb 8.3,配置为"x86_64-apple-darwin19.0.0">
我在系统中创建了证书,然后在登录中创建了证书,结果没有变化。
我在 gdb 和主目录中的 .gdbinit 文件中都set startup-with-shell off
。
我最终能够用sudo gdb ./a.out
运行 gdb,当我在 gdb 中使用r
运行代码时,只会收到奇怪的消息:
(No debugging symbols found in ./a.out) (gdb) r Starting program: /Users/zanekarl/Documents/Work-Documents//Programming/-code-snippets/a.out [New Thread 0xc03 of process 906] [New Thread 0xf03 of process 906] During startup program terminated with signal SIGTRAP, Trace/breakpoint trap.```
(No debugging symbols found in ./a.out) (gdb) b main Breakpoint 1 at 0x100000f64 (gdb) r Starting program: /Users/zanekarl/Documents/Work-Documents//Programming/-code-snippets/a.out [New Thread 0xd03 of process 768] [New Thread 0x1003 of process 768] During startup program terminated with signal ?, Unknown signal.```
Reading symbols from /Users/zanekarl/Documents/Work-Documents//Programming/-code-snippets/a.out.dSYM/Contents/Resources/DWARF/a.out... (gdb) b main Breakpoint 1 at 0x100001753: file SSSv1-1.c, line 99. (gdb) r Starting program: /Users/zanekarl/Documents/Work-Documents//Programming/-code-snippets/a.out [New Thread 0xb03 of process 717]```
Reading symbols from /Users/zanekarl/Documents/Work-Documents//Programming/-code-snippets/a.out.dSYM/Contents/Resources/DWARF/a.out... (gdb) b main Breakpoint 1 at 0x100001753: file SSSv1-1.c, line 99. (gdb) r Starting program: /Users/zanekarl/Documents/Work-Documents//Programming/-code-snippets/a.out Unable to find Mach task port for process-id 680: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))```
在我的MacBook Pro(15英寸,2016年(上运行Catalina 10.15.2(19C57(,启用了sip。
我通过以下方式安装了 gdb 8.3.1:
brew install gdb
然后在我的主文件夹中,我创建了一个 gdb.xml 文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.debugger</key>
<true/>
</dict>
</plist>
我在系统钥匙串上创建了 gdb 证书
要签署 gdb,我启用了 root 帐户,作为 root,我使用了以下命令:
codesign --entitlements gdb.xml -fs gdb-cert/usr/local/Cellar/gdb/8.3.1/bin/gdb
现在,我可以使用 netbeans 来调试我的 fortran 代码。
权利xml是我缺少的部分:
- 启动/应用程序/实用程序/钥匙串 Access.app
- 钥匙串访问->证书助手->创建证书
Name = gdb_codesign Identity Type = Self Signed Root Certificate Type = Code Signing
- 点击"我的证书">
- 双击您的新gdb_codesign证书
- 调低"信任"披露三角形 改变: 使用此证书时:始终信任
- 按住 Option 键将新的gdb_codesign证书从登录钥匙串拖到系统钥匙串
- 创建协同设计权利 xml:gdb-entitlement.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.cs.debugger</key> <true/> </dict> </plist>
- 打开终端
$ codesign --entitlements gdb-entitlement.xml -fs gdb_codesign $(which gdb) $ sudo killall taskgated
我遇到了同样的问题,按照此说明解决了它,我绝对确定创建一个权利.xml很重要。因此,您可以查看以前是否这样做过。