C语言 在 Mac OS Catalina 中,所有当前文档都失败了 找不到进程 ID 的 Mach 任务端口,有什么建



问题的原始形式(不完全是问题本身(:找不到进程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运行代码时,只会收到奇怪的消息:

  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.```
    
  2. (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.```
    
  3. 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]```
    
  4. 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是我缺少的部分:

  1. 启动/应用程序/实用程序/钥匙串 Access.app
  2. 钥匙串访问->证书助手->创建证书
    Name = gdb_codesign
    Identity Type = Self Signed Root
    Certificate Type = Code Signing
    
  3. 点击"我的证书">
  4. 双击您的新gdb_codesign证书
  5. 调低"信任"披露三角形 改变: 使用此证书时:始终信任
  6. 按住 Option 键将新的gdb_codesign证书从登录钥匙串拖到系统钥匙串
  7. 创建协同设计权利 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>
    
  8. 打开终端
    $ codesign --entitlements gdb-entitlement.xml -fs gdb_codesign $(which gdb)
    $ sudo killall taskgated
    

我遇到了同样的问题,按照此说明解决了它,我绝对确定创建一个权利.xml很重要。因此,您可以查看以前是否这样做过。

最新更新