mac gdb SIG113

mac自从升级至Sierra系统后,gdb调试程序后出错:

During startup program terminated with signal SIG113, Real-time event 113

网上方案:升级gdb,修改gdb配置:

brew upgrade gdb
cat "set startup-with-shell off" > ~/.gdbinit

 该方案只适合v12.10.2及以下版本,v10.12.6依然无法工作。

上述错误是由于mac的安全保护策略所致,阻止gdb调试程序。网上提出可使用lldb调试,毕竟是苹果自家的产品,亲测可行,命令与gdb基本一致。

lingdeMacBook-Pro:test lingsun$ lldb 1
(lldb) target create "1"
Current executable set to '1' (x86_64).
(lldb) b main
Breakpoint 1: where = 1`main + 42 at 1.cpp:8, address = 0x00000001000013aa
(lldb) r
Process 2551 launched: '/Users/lingsun/test/1' (x86_64)
Process 2551 stopped
* thread #1: tid = 0xd38d, 0x00000001000013aa 1`main(argc=1, argv=0x00007fff5fbff9a0) + 42 at 1.cpp:8, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x00000001000013aa 1`main(argc=1, argv=0x00007fff5fbff9a0) + 42 at 1.cpp:8
   5
   6   	int main( int argc, char **argv )
   7   	{
-> 8   	    int a[] = {-1, 1, 1, 1, -1, -1, 0,0,0};
   9   	    vector<int> n(a, a+sizeof(a)/sizeof(int));
   10  	    int pa = 0;
   11  	    cout << n.size() << "---" << pa << endl;
(lldb) n

相关推荐