企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
~~~ brew install gdb ~~~ 这个原因是mac不允许没有给予许可的进程来调试其它进程,那解决办法自然就想到了root,来个根权限。但是,这个会影响到万一gdb调试了重要内核程序后果不是我们想要的,没有安全证书,我们就自己添加一个安全证书: 首先打开钥匙串访问 ![](https://box.kancloud.cn/8c8622791574dece3dbc29b51ffe14aa_449x204.png) 下面关键要修改的东西如下 ![](https://box.kancloud.cn/6060ad38c62c1a34686f776d766de509_452x381.png) 注意一定钥匙代码签名,英文名是codesign,上面的名称随意,这个跟你后面的命令行键入的名称有关,接下来,一直往下 ![](https://box.kancloud.cn/6d8f79f8f94bd9a0fd8470a5d9563436_319x249.png) 把这个钥匙串改成system,然后创建由于我已经创建过了,这里就不显示出来了。 双击,将信任改成始终信任: ![](https://box.kancloud.cn/3ddfa8e393d556de9e3e3c9e0e5a81ef_338x398.png) 中间要输入密码之类的,输入就是了。 OK,只差最后一步 重启电脑。 然后在命令行上输入: ~~~ codesign -s gdb-cert-hekewen /usr/local/bin/gdb ~~~ 这个gdb-cert-hekewen,要改成你的证书名,后面就是gdb位置。 没有报错就是成功了。 3.The specified item could not be found in the keychain. 这个就是在钥匙串里面没有找到该签名,这个错误往前面看你的安全证书是否按照上面的步骤解决,特别注意证书名字,证书类型,信任,系统,这些有没设置成功。 4.During startup program terminated with signal SIG113, Real-time event 113 这个错误好像只有在高版本的OSX系统上才出现,解决办法就是在gdb启动的时候,键入命令 ~~~ set startup-with-shell off ~~~ 就解决了 当然,如果这样,你每次在调试的时候都要键入,这时候你就可以添加到.gdbinit,每次运行gdb的时候都执行一次。 关于.gdbinit,就是在你每次用gdb调整程序的时候,如果程序文件中有.gdbinit,就会自动读取里面的命令,全部执行一遍。 于是乎,我们只要用vim在程序文件里面创建一个`.gdbinit`,并在里面写上`set startyup-with-shell off` 就解决了。 终于,我们可以开心的在mac上使用gdb了。 当遇到sip的问题时 ~~~ echo "set startup-with-shell off" >> ~/.gdbinit ~~~