zoukankan      html  css  js  c++  java
  • 第03课:GDB常用的调试命令概览

    先给出一个常用命令的列表,后面结合具体的例子详细介绍每个命令的用法。

    命令名称      命令缩写      命令说明


    run          r         运行一个程序


    continue         c        让暂停的程序继续运行


    next           n        运行到下一行


    step           s        如果有调用函数,进入调用函数内部,相当于step into


    until           u        运行到指定行停下来


    finish         fi         结束当前调用函数,到上一层函数调用处


    return          return            结束当前调用函数并返回指定值,到上一层函数调用处


    print          p         打印变量或寄存器值


    backtrace         bt           查看当前线程的调用堆栈


    frame          f           切换到当前调用线程的制定堆栈,具体堆栈通过堆栈序号指定


    thread         thread       切换到指定线程


    break          b          添加断点


    tbreak         tb         添加临时断点


    delete         del          删除断点


    enable        enable       启动某个断点


    disable        disable         禁用某个断点


    watch          watch       监听某一个变量或内存地址的值是否发生变化


    list           l         显示源码


    info           info        查看断点/线程等信息


    ptype           ptype        查看变量类型


    disassemble      dis         查看汇编代码


    set args                   设置程序启动命令行参数


    show args                  查看设置的命令行参数

      上面只列了一些常见的命令,对于一些不常见的命令(如file命令)就不列举了,不建议可以记忆这些命令,因为确实有点多,找几个程序代码实际联系一下很快就能记住,至于要不要采用,大家还是根据自己的学习习惯来。当GDB输入命令时,对于一个命令可以缩写成什么样子,只需要遵循如下两个规则即可。

      ---一个命令缩写时不能出现多个选择,否则GDB就不知道对应哪个命令了。举个例子,输入th,那么th对应的命令有thread和thbreak,这样GDB就不知道哪个了,需要更具体的输入,GDB才能识别。

      ---GDB有些命令虽然也对应多个选择,但是有些命令的简写是有规定的,例如,r就是命令‘run’的简写,虽然输入‘r'时,你的本意可能是’return‘命令。

      总之,如果记不清楚,可以直接使用命令全称,每个命令都是很常见的英文单词,通俗易懂不难记忆。

      如果还不熟悉GDB调试,建议认真阅读以下文章。

  • 相关阅读:
    testng 控制case运行顺序
    0518 Scrum 项目 5.0
    0506团队项目Scrum 项目1.0
    0429团队项目Scrum团队成立
    0429团队项目对师姐的软件的一些改进
    0422团队项目:二次开发
    0511团队项目2.0产品product backlog
    实验三进程调度模拟程序
    0517 SCRUM团队项目4.0
    0512 SCRUM团队项目3.0
  • 原文地址:https://www.cnblogs.com/wzqstudy/p/10237437.html
Copyright © 2011-2022 走看看