zoukankan      html  css  js  c++  java
  • macos 10.15/Catalina 用不了gdb

    主要有两个问题:

    • Unable to find Mach task port for process-id xxx
    • new Thread然后卡住
      下面分别叙述两个问题
    异常情况: Unable to find Mach task port for process-id 60832: (os/kern) failure (0x5).
    Unable to find Mach task port for process-id 60832: (os/kern) failure (0x5).
     (please check gdb is codesigned - see taskgated(8))
    
    参考综述
    • (最简单的解决问题办法, sudo)这个回答, sudo. 的确可以, 但是治标不治本, 于是我才往后看, 但其实已经可以解决问题了.
    • (可以不看, 后面已包含)CSDN上的博客, 跟着这个教程创建证书, 证书可以在keychains->system->gdb_codesigned(证书名)中查看. 但是跟着它不行, 实际上,
    • (可以不看)这个回答, 与上一篇博客内容相仿, 但也不行
    • (解决问题的)gdb wiki, 跟着它走就行. 但是加上一点, 它建议重启的地方, 可以不重启, 但是要先找到所有gdb进程, 然后kill -9.
    出现异常的原因和解决思路

    如果一个进程想要访问其它进程的pid, 需要数字签名 解决办法, 如博客所说, 是创建证书, 并且trust all.
    问题是怎么让它生效. 参考"wiki" 中, 最重要的一点是: 要么重启(比较稳的做法), 要么一定要kill -9 干净.

    [New Thread 0xf03 of process 61569] then get stuck

    说的解决办法就是在.gitinit中添加

    set startup-with-shell off
    

    首先怎么结束? ctrl+Z.

    发现是

    61567   0.0  0.1  4279152  14140 s009  T    10:05AM   0:00.10 gdb ./a.out
    

    那么61569是啥? 是a.out进程. 我怀疑是gdb是一个进程, 它又开了子进程, 就是它调试的程序.

    再开gdb, 这个问题就解决了. 但出现问题的原因还不明白.

  • 相关阅读:
    解决ajax无法给js全局变量赋值的问题
    jquery对象和dom对象
    js浏览器调试
    elastic search使用
    elastic search远程测试
    elastic search安装与本地测试
    jQuery常用技巧
    Jquery操作cookie
    HTML特殊字符编码对照表
    DpQuery.js
  • 原文地址:https://www.cnblogs.com/Tokubara/p/14291542.html
Copyright © 2011-2022 走看看