花算子 2023-12-03 16:52 采纳率: 100%
浏览 4
已结题

Mac里面的gdb,卡住没反应

mac里的gdb,总是卡住。

4    
5    #define LIMIT 81
6    
7    void ToUpper(char *);
8    int  PunctCount(const char *);
9    
10    int main()
11    {
12    
(gdb) b 10
Breakpoint 1 at 0x100003e0d: file 11.30.c, line 17.
(gdb) r
Starting program: /Users/rain/rain_work/11.30 
[New Thread 0x2403 of process 9360]
[New Thread 0x2b03 of process 9360]
n

^C



用ctrl C也不管用,没反应了。

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-03 16:53
    关注

    引自强大而免费的微信小程序:皆我百晓生

    1. 问题描述
    在Mac上使用gdb调试程序时,gdb卡住并没有任何响应,即使使用Ctrl+C也无效。

    2. 导致问题的可能原因
    可能的原因有:

    • 被调试的程序产生了死锁或无限循环,导致gdb无法继续执行。
    • gdb本身存在问题或与操作系统不兼容。

    3. 建议的解决方法
    尝试以下解决方法,逐一排查问题所在。

    1) 检查被调试程序
    在程序执行前下断点以及在程序执行中使用Ctrl+C无法中断,通常是因为被调试程序进入了无限循环或死锁。请检查程序是否存在无限循环或死锁,并确保程序的正确性。

    可以尝试以下方法:

    • 在适当的位置添加打印语句,观察程序是否按照预期执行。
    • 使用更小的输入数据来调试程序,以便更快地观察到程序的行为。

    2) 更新gdb版本
    如果您正在使用较旧的gdb版本,请尝试更新到最新版本。可以使用命令brew update gdb来更新gdb。然后,使用brew info gdb命令查看已安装的gdb版本并将其链接到/usr/local/bin/目录下。

    3) 使用lldb替代gdb
    lldb是另一个在Mac上可用的调试器,它可能对您的程序更兼容。可以尝试使用lldb来调试程序。在终端中输入lldb <可执行文件路径>,然后使用lldb的命令进行调试。

    4) 检查操作系统和gdb的版本兼容性
    有时,gdb可能与操作系统不兼容,导致出现问题。请检查您的操作系统和gdb版本之间的兼容性。您可以查阅gdb官方网站或在相关讨论论坛上查找相关信息。

    5) 尝试其他调试工具
    如果以上解决方法仍然无效,您可以尝试其他调试工具,如CLion、CodeLLDB等。这些工具可能提供更好的调试体验。

    希望这些解决方法能够帮助您修复gdb卡住的问题。如果问题仍然存在,请提供更多的详细信息,以便我们能够更好地帮助您解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 12月3日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题