如何在最新版的 Mojave 上使用 gdb? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lovestudykid
V2EX    Apple

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

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

    我想万能的 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
      &nbp; 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     Solana     5703 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 06:09 PVG 14:09 LAX 23:09 JFK 02:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86