Macos Mojave上的GDB错误



环境:Mac/Mojave和GDB 8.2.1(通过Homebrew)。

我通过说明进行了https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html i。:

  • 最新的GDB通过brew,它解决了可执行格式的问题

  • 带有新权利的签名GDB

此外,我还修改了SIP以允许调试(在恢复OS终端:csrutil enable --without debug)。

但是,我仍然无法让GDB工作:

(gdb) file main
Reading symbols from main...done.
(gdb) run
Starting program: /Users/joubertold/code/Rhodus/obj/debug/main 
[New Thread 0x1a03 of process 5082]
[New Thread 0x2803 of process 5082]
During startup program terminated with signal ?, Unknown signal.
(gdb) 

有趣的是,LLDB在同一二进制中为我工作:

(lldb) file main
Current executable set to 'main' (x86_64).
(lldb) run
Process 5086 launched: '/Users/joubertold/code/Rhodus/obj/debug/main' (x86_64)
Rhodus
 1 is ONE
 1 is between 1 and 10
 1 is between 1 and 10
 1 is between 1 and 10
 1 is between 1 and 10
 1 is between 1 and 10
 1 is between 1 and 10
 1 is between 1 and 10
 1 is between 1 and 10
 1 is beyond
 1 is beyond
 1 is beyond
Process 5086 exited with status = 0 (0x00000000) 
(lldb) 

有什么想法吗?

我让GDB在莫哈维(Mojave)上工作:

a)获取最新的GDB源存档(在写作时,ftp://sourceware.org/pub/gdb/snapshots/current/current/gdb-weekly-8.2.50.20190212.tar.xz)它添加了用于识别Mac上可执行文件的处理。

b)构建GDB。我在darwin-nat.c中遇到了可变阴影的错误,所以我编辑了文件并重建(diff https://gist.github.com/joubertnel/267CA0FFF4EAAD494CC19EC3BA7953ED)。

)。

c)在https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html

中遵循步骤

瞧。

不幸的是,接受的答案对我不起作用。

对于与我同样情况下的任何人,我建议使用Visual Studio代码或Xcode来调试您的C程序。

最新更新