参考:Q107:Linux系统下GDB对PBRT-V3进行debug
Mac系统下GDB的使用和Linux下基本一样。主要发现三处不一样的地方。
其一,有关文件路径
Linux中类似于:
/home/lbzeng/pbrt-v3/src/integrators/directlighting.cpp
而Mac中是:
/Users/lbzeng/pbrt-v3/src//integrators/directlighting.cpp
注意两个地方:
1,“/home/”对应“/Users/”
2,“src/”对应“src//”
其二,有关进程安全
Mac出于对进程安全的考虑,gdb不能随意访问其它进程,需要给它代码签名。
具体操作:mac OS X 10.9.2 gdb codesign
其三,GDB突然中断
在完成“其二”之后,在让GDB开始跑时(即输入“r”指令时),突然报错:
"During startup program terminated with signal ?, Unknown signal."
这个错误和系统版本有一定关系。
小编的系统是masOS Sierra (10.12.3),不幸有这个问题。
这个问题的解决方案是:
1,重启电脑,开机时按option+command+r,进入“恢复模式”
2,在“恢复模式”打开终端,输入如下指令:
csrutil enable --without debug
3,重启电脑,OK