如何在最新版的 Mojave 上使用 gdb?

2019-01-11 01:44:24 +08:00
 lovestudykid

我想万能的 iV2ex 应该有很多人会在在 mojave 上使用 gdb😄,希望能得到帮助。

设备:MBP MF839+Mojave 10.14.2

软件: GNU gdb (GDB) 8.2.1 gcc: stable 8.2.0 (bottled), HEAD 都是 homebrew 安装的,因为不知道是不是版本问题,我就都更新到最新版了。

采取的措施: https://sourceware.org/gdb/wiki/PermissionsDarwin 大致是 follow 这个 wiki,跟以前版本差不多,就是多了个 debugger 的 key

症状:操作之前是会报 cerficate 的问题,之后会有 [New Thread 0x1113 of process 96785] [New Thread 0x2703 of process 96785] During startup program terminated with signal SIGTRAP, Trace/breakpoint trap. 或者 run 开始后程序挂起没有响应,并且 kill 不掉

others: stackoverflow 上有人说需要关闭 SIP,但也有人没说,我不是很确定,所以没做。不大想关闭 SIP。感觉随着 macos 升级,要用 gdb 是越来越麻烦了,以前使用是没问题的。

谢谢🙏

4215 次点击
所在节点    Apple
15 条回复
Pyjamas
2019-01-11 01:59:58 +08:00
我大概两个月前搜过一下,貌似无解,然后就用 lldb 了
lovestudykid
2019-01-11 02:13:38 +08:00
@Pyjamas 😂,实在不行只能远程在 Linux server 上编译调试了,不过我都是比较短小的 code,不想麻烦。另外 server 上的工具版本不受我控制
mason961125
2019-01-11 03:05:59 +08:00
@lovestudykid 短小可以用 lldb 啊
Pyjamas
2019-01-11 03:06:37 +08:00
@lovestudykid 我最后也是回到了 Linux,不过我是开了个 virtualbox 的虚拟机,然后开共享文件夹,用着也还行
52coder
2019-01-12 00:33:32 +08:00
有 parallel 开个虚拟机,方便又快捷
lovestudykid
2019-01-12 00:40:45 +08:00
@52coder 穷...8G 内存开什么虚拟机。今年倒是打算换一个,加到 16GB,但现在比较犹豫要不要继续 Mac 了
irryal
2019-01-13 11:16:42 +08:00
也是一直被这个问题困扰,lldb 不能 debug fortran 代码,最后只有 sudo 提权运行 gdb 绕过了,还是 wsl 方便
lovestudykid
2019-01-13 23:09:42 +08:00
@irryal 额,能详细说说你的操作步骤么?我用 sudo 提权也不行的,fortran 和 c++我都试过,一样的结果。最好的情况就是 run 之后进程启动了,但没有响应,debugger 进程可以杀掉,子进程杀不掉。以前用 Sierra 的时候是没问题的
irryal
2019-01-15 21:32:53 +08:00
@lovestudykid 重新回去安装 gdb 尝试了一遍,现在就像你说的,启动的进程没反应,只能 kill 掉 shell 关闭,sudo 也没用,😔😔😔。以前是用 macport 安装的旧版 gdb,现在 8.2 直接不行了,而且据说 apple 改了可执行文件的结构,导致 gdb 无法支持新系统,所以我尝试关掉 SIP 也没用。
lovestudykid
2019-01-15 21:43:05 +08:00
@irryal 😂,信仰不足需要充值了,今年准备换电脑的。如果解决了,欢迎来发帖介绍。stackoverflow 大神多,可能可以解决,不过我没账号。
lovestudykid
2019-01-16 07:26:13 +08:00
@irryal 更新到-HEAD 版本后,可以 sudo 使用了,但报了一大堆 can't open to read symbols: No such file or directory.的 warning。根据 homebrew 的 issues 里面的讨论来看,似乎是 gdb 本身的问题
52coder
2019-02-13 19:16:44 +08:00
@lovestudykid 我是 15 款 8g 128g,开一个 centos 虚拟机稳稳的.有个闲置的 12 年的 windows 本,我装了 ubuntu,mac ssh 过去开发.
lovestudykid
2019-02-14 01:26:19 +08:00
@52coder 文件怎么跟虚拟机同步的?的确可以用轻量一点的虚拟机。Windows 下用 mingw 没问题
52coder
2019-02-14 09:39:45 +08:00
@lovestudykid 我一般比如改一些 c 文件,用 ftp 工具通过 sublime 编辑,然后改了就会自动上传到 linux,然后编译运行,别的需求目前没有
roidinev
2019-04-14 21:20:01 +08:00
本来在 8.2.1 下 build 支持 python3 的 gdb,目前也遇到这个问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/525884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX