debugging 在Mac OS Catalina 中,所有当前文档都因无法找到进程ID的Mach任务端口而失败,有什么建议吗?

zsbz8rwp  于 2022-11-14  发布在  Mac
关注(0)|答案(3)|浏览(133)

问题的原始形式(不完全是问题本身):无法找到进程ID的Mach任务端口:(os/kern)失败(0x 5)。(请检查gdb是否为协同设计-请参阅taskgated(8))
我希望有人能提到他们所拥有的任何关于在没有sudo的情况下运行gdb的能力的信息,但是仅仅运行就可以了。
我已经按照https://github.com/cs01/gdbgui/issues/55和几乎所有相关的stackoverflow和OSXdaily feed的说明进行了大约一周的操作。我知道有很多关于这个错误的文档,但是到目前为止还没有人发布这些输出,并且正在运行 Catalina 。我在Mac OSX Catalina 10.15.1上运行gdb 8.3,配置为“x86_64-apple-darwin 19.0.0”
我在系统中创建了证书,然后在登录中创建了证书,结果没有变化。
我在gdb和home目录下的.gdbinit文件中都有set startup-with-shell off
我最终能够使用sudo gdb ./a.out运行gdb,但当我在gdb中使用r运行代码时,却收到了奇怪的消息:
1.

(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))```
yshpjwxd

yshpjwxd1#

在我的MacBook Pro(15英寸,2016年)上运行 Catalina 10.15.2(19 C57),启用了SIP。
我通过以下方式安装了gdb 8.3.1:
brew安装gdb
然后在我的home文件夹中创建了一个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-cert
为了对gdb进行签名,我启用了root帐户,作为root,我使用了以下命令:
代码设计--授权gdb.xml --文件系统gdb-cert /usr/local/Cellar/gdb/8.3.1/bin/gdb
现在我可以使用netbeans来调试我的fortran代码了。

qlfbtfca

qlfbtfca2#

权限xml是我缺少的部分:
1.启动/应用程序/实用工具/钥匙串Access.app
1.钥匙串访问-〉证书助理-〉创建证书

Name = gdb_codesign
Identity Type = Self Signed Root
Certificate Type = Code Signing

1.单击“我的证书”
1.双击新的gdb_codesign证书
1.调低“信任”显示三角形更改:使用此证书时:始终信任
1.按住Option键并将新的gdb_codesign证书从登录钥匙串拖到系统钥匙串
1.创建代码设计授权xml: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>

1.开路端子

$ codesign --entitlements gdb-entitlement.xml -fs gdb_codesign $(which gdb)
$ sudo killall taskgated
ddhy6vgd

ddhy6vgd3#

我遇到了同样的问题,我在this instruction之后解决了它,我肯定创建一个权利。xml是重要的。所以你可以检查一下你以前是否做过这个。

相关问题