简 述: 在 mac 使用 gdb 调试程序时候,会遇到报错如下,本文就是专门解决这个问题的。

(gdb) run
Starting program: /Users/muli/project/github/linuxExample/06_gdb/mainApp 
Note: this version of macOS has System Integrity Protection.
Because `startup-with-shell' is enabled, gdb has worked around this by
caching a copy of your shell.  The shell used by "run" is now:
    /Users/muli/Library/Caches/gdb/bin/zsh
Unable to find Mach task port for process-id 20050: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

在 MacOS 10.14.6 的系统下,发现安装 gdb 8.3 (当前最新) 的坑不是一般的多,那真真的多。鉴于网上的教程都是过时的,且按照某一篇, 你是不可能顺利运行安装成功的。所以浪费我昨天一个晚上解决这个问题(我的时间也很宝贵的),今天又花费一晚上时间,完成这篇图文并茂的的安装教程。作为一个日后的记录和给后来者一个方便。

是目前网上最新最详细的在 mac 安装 gdb 的教程 ;其中大概思路:

  • 创建整证书,证书授权
  • 关闭 SIP 安全防护,重启系统;
  • sudo 运行 gdb 调试;
  • kill 卡死进程, 再次重新 gdb 调试;
  • 成功

  简 述: 在上一篇中,最后为了测试 gcc 9.2.0 版本的安装是否成功。对创建的测试文件 main.cpp 文件,执行 gcc-9 main.cpp -o mainApp -lstdc++ 命令;虽然最后运行成功了;但是是始终是有一点困惑:

  • 调用 gcc 和 gcc-9❗️
  • 能否自动执行 gcc 的时候,去掉 -lstdc++,使得看起来清爽起来 ⁉️

最后查询一下。发现其中另有一番天地,差点就错过了。 本章主要讲解 gcc 和 g++的区别,编译.c和.cpp文件的区别