V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lovestudykid
V2EX  ›  Apple

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

  •  
  •   lovestudykid · 2019-01-11 01:44:24 +08:00 · 4235 次点击
    这是一个创建于 2171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想万能的 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 是越来越麻烦了,以前使用是没问题的。

    谢谢🙏

    第 1 条附言  ·  2019-01-12 03:31:18 +08:00
    额,为什么关注的人这么少,这个问题不是很多人都会遇到么?哪怕是一些 IDE,backend 一样是 GDB 啊
    15 条回复    2019-04-14 21:20:01 +08:00
    Pyjamas
        1
    Pyjamas  
       2019-01-11 01:59:58 +08:00
    我大概两个月前搜过一下,貌似无解,然后就用 lldb 了
    lovestudykid
        2
    lovestudykid  
    OP
       2019-01-11 02:13:38 +08:00 via iPhone
    @Pyjamas 😂,实在不行只能远程在 Linux server 上编译调试了,不过我都是比较短小的 code,不想麻烦。另外 server 上的工具版本不受我控制
    mason961125
        3
    mason961125  
       2019-01-11 03:05:59 +08:00 via iPhone
    @lovestudykid 短小可以用 lldb 啊
    Pyjamas
        4
    Pyjamas  
       2019-01-11 03:06:37 +08:00
    @lovestudykid 我最后也是回到了 Linux,不过我是开了个 virtualbox 的虚拟机,然后开共享文件夹,用着也还行
    52coder
        5
    52coder  
       2019-01-12 00:33:32 +08:00
    有 parallel 开个虚拟机,方便又快捷
    lovestudykid
        6
    lovestudykid  
    OP
       2019-01-12 00:40:45 +08:00
    @52coder 穷...8G 内存开什么虚拟机。今年倒是打算换一个,加到 16GB,但现在比较犹豫要不要继续 Mac 了
    irryal
        7
    irryal  
       2019-01-13 11:16:42 +08:00 via iPhone
    也是一直被这个问题困扰,lldb 不能 debug fortran 代码,最后只有 sudo 提权运行 gdb 绕过了,还是 wsl 方便
    lovestudykid
        8
    lovestudykid  
    OP
       2019-01-13 23:09:42 +08:00
    @irryal 额,能详细说说你的操作步骤么?我用 sudo 提权也不行的,fortran 和 c++我都试过,一样的结果。最好的情况就是 run 之后进程启动了,但没有响应,debugger 进程可以杀掉,子进程杀不掉。以前用 Sierra 的时候是没问题的
    irryal
        9
    irryal  
       2019-01-15 21:32:53 +08:00
    @lovestudykid 重新回去安装 gdb 尝试了一遍,现在就像你说的,启动的进程没反应,只能 kill 掉 shell 关闭,sudo 也没用,😔😔😔。以前是用 macport 安装的旧版 gdb,现在 8.2 直接不行了,而且据说 apple 改了可执行文件的结构,导致 gdb 无法支持新系统,所以我尝试关掉 SIP 也没用。
    lovestudykid
        10
    lovestudykid  
    OP
       2019-01-15 21:43:05 +08:00
    @irryal 😂,信仰不足需要充值了,今年准备换电脑的。如果解决了,欢迎来发帖介绍。stackoverflow 大神多,可能可以解决,不过我没账号。
    lovestudykid
        11
    lovestudykid  
    OP
       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
        12
    52coder  
       2019-02-13 19:16:44 +08:00
    @lovestudykid 我是 15 款 8g 128g,开一个 centos 虚拟机稳稳的.有个闲置的 12 年的 windows 本,我装了 ubuntu,mac ssh 过去开发.
    lovestudykid
        13
    lovestudykid  
    OP
       2019-02-14 01:26:19 +08:00
    @52coder 文件怎么跟虚拟机同步的?的确可以用轻量一点的虚拟机。Windows 下用 mingw 没问题
    52coder
        14
    52coder  
       2019-02-14 09:39:45 +08:00
    @lovestudykid 我一般比如改一些 c 文件,用 ftp 工具通过 sublime 编辑,然后改了就会自动上传到 linux,然后编译运行,别的需求目前没有
    roidinev
        15
    roidinev  
       2019-04-14 21:20:01 +08:00
    本来在 8.2.1 下 build 支持 python3 的 gdb,目前也遇到这个问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.