MacOS Catalina下使用gdb进行调试遇到的几个问题

相关版本

  • MacOS版本:10.15.3
  • GNU gdb (GDB) 9.1

issue-1:run之后停止

进入gdb,打好断点,运行,运行起来后,有如下日志,

Starting program: /Users/franzkemmerich/work/42_school/test/a.out
[New Thread 0xd03 of process 1661]

之后不能继续执行,只能通过ctr+z让该程序在后台运行,之后使用kill命令杀掉该进程。然后再次进入,有可能就运行正常了。

问题和 【(gdb) 8.3.1 hangs after run command on mac Catalina】一样。

  • 找到的一个解决方法:创建~/.gdbinit文件,并向该文件插入set startup-with-shell off语句。详细命令为

    touch ~/.gdbinit
    echo "set startup-with-shell off" >> ~/.gdbinit
    
  • 该方案来自于上面提到的issue,这么执行后暂时未出现该问题。

issue-2:用gdb调试程序,运行时提示Unable to find Mach task port for process-id 83767: (os/kern) failure (0x5).

在这里插入图片描述

  • 解决办法:加上sudo,即sudo gdb executableFileName
  • 该问题【stackoverflow】中已经提供方案,第一个答案太麻烦,要切换使用lldb,直接采用的第二个方案,加上sudo

参考

  • 【(gdb) 8.3.1 hangs after run command on mac Catalina】
  • 【gdb fails with “Unable to find Mach task port for process-id” error】

你可能感兴趣的:(C/C++,Linux)