zoukankan      html  css  js  c++  java
  • GDB用法简要整理

    [时间:2017-05] [状态:Open]
    [关键词:gdb,调试,debug,用户手册]

    使用gdb是需要在编译是指定-g命令,在可执行文件中添加符号信息。

    1. 启动和退出

    可以使用gdb gdb executable-file等启动gdb调试。
    退出时,命令行输入quitq或者ctrl + d。
    在gdb命令界面中可以输入help获得帮助信息。

    2. 查看调用堆栈

    使用backtrace where bt可查看当前线程调用堆栈。

    3. 调试中导航命令

    • run 开始调试程序,可使用命令行参数指定
    • start 执行调试程序到main函数的第一行,使用的是之前输入的命令行参数
    • pause continue 暂停和继续调试程序
    • step是step-into模式下的命令,顺序执行下一条指令,是函数的话会跳入该函数内部,并停在第一行。
    • next是step-over模式下的命令,顺序执行同级别堆栈的下一条指令,即对于函数,会自动跳过,当做一条指令处理。
    • finish是step-out模式下的命令,跳出当前堆栈,进入上一层。

    4. 调试时查看变量或表达式

    print variable-name使用该指令可以显示变量的值。

    5. 查看调试信息

    info stack查看调用堆栈
    info thread 查看线程堆栈

    6. 内存调试器(memory debugger)

    之前只是知道有valgrind等辅助检测内存泄露的工具,但不太清楚还有这个名字。
    最初的来由是因为c/c++都存在相同的内存管理问题(比如内存泄露、缓冲区溢出、内存管理错误等bug),这就催生了内存调试器的出现。

    常用的内存调试器有Valgrind、Purify、insure++、boundschecker。
    具体可以参考点评五款用于 Linux 编程的内存调试器

    7. 小结

    直接使用gdb命令行总是枯燥无味的。正确的用法是结合实际情况分析并学习相关调试技巧。

    可以在linux下使用DDD的UI界面调试,跟vs的调试器有点类似。

    本文简要整理了gdb支持的调试命令,作为后续参考。
    更详细的资料建议参考gdb manual

  • 相关阅读:
    WM有约(二):配置信息
    ASP+Wrod、excel打印程序示例
    用stream直接下载文件
    ASP判断gif图像尺寸的方法
    白菜世纪RSS无刷新聚合器(1221修正)
    ASP.NET常用代码
    图片超过规定的大小就按原图片大小缩小
    javascript弹出窗口总结
    asp excel sql 关系大总结
    打开窗口
  • 原文地址:https://www.cnblogs.com/tocy/p/gdb-basic-summary.html
Copyright © 2011-2022 走看看