gdb常用命令

    技术2022-06-28  64

    ---------------------------------------------------------------------

    命令          简写         功能

    ---------------------------------------------------------------------

    awatch                   用来增加一个观察点(add watch),使用格式:awatch 变量或表达式

                             当表达式的值发生改变或表达式的值被读取时,程序就会停止运行                         

    backtrace bt             查看函数调用栈的所有信息。

    backtrace 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)

    break        b              在代码里设置断点, 这将使程序执行到这里时被挂起.

     b fun_name

     b line_num

     break line-or-function if condition

     break routine-name 在指定例程的入口处设置断点

     delete breakpoint num (d b n)       --删除断点

     delete breakpoint(d b)   --删除所有断点

     tbreak                   --设置临时断点

    call name  调用和执行一个函数

    catch                         设置捕捉点.

    cd 改变当前工作目录

    clean n                         清除n行上的所有断点  

    clear 删除刚才停止处的断点

    commands :设置在遇到断点后执行特定的指令。使用格式有:

        commands

          设置遇到最后一个遇到的断点时要执行的命令

        commands n

          设置遇到断点号n时要执行的命令

         注意,commands后面跟的是断点号,而不是断点所在的行号。

         在输入命令后,就可以输入遇到断点后要执行的命令,每行一条命令,在输入最后一条命令后输入end就可以结束输入。

    continue  c               继续执行程序,直至下一中断或者程序结束。

    condition :设置断点在一定条件下才能生效。

            使用格式:condition 断点号 条件表达式

    delete 删除一个断点或监测点;也可与其他命令一起使用

    display 程序停止时显示变量和表达时    --undisplay

    down 下移栈帧,使得另一个函数成为当前函数

    examine  x               打印内存内容。

    file                             装入想要调试的可执行文件.

    finish     结束执行当前函数,显示其返回值(如果有的话)

    forward/search :从当前行向后查找匹配某个字符串的程序行  

                    使用格式:forward/search 字符串

    frame 选择下一条continue命令的帧

           打印栈帧,使用格式:frame 栈帧号

    info 显示与该程序有关的各种信息       --info breakpoint(i b)

    ignore :忽略断点 

        ignore 断点号 忽略次数

    jump 让程序跳到指定行开始调试

    kill             k              终止正在调试的程序.

    list             l               列出产生执行文件的源代码的一部分.

               list function:输出函数function前后的10行程序代码

    make                          使你能不退出 gdb 就可以重新产生可执行文件.

    next           n              执行一行源代码但不进入函数内部.

                  next n 执行n条语句

    print 显示变量或表达式的值

        p fun(...)       --打印函数运行结果

        p *arr@n         --查看数组arr的前n个元素

        /x  按十六进制格式显示变量。      --p /x i

        /d  按十进制格式显示变量。

        /u  按十六进制格式显示无符号整型。

        /o  按八进制格式显示变量。

        /t  按二进制格式显示变量。

        /a  按十六进制格式显示变量。

        /c  按字符格式显示变量。

        /f  按浮点数格式显示变量。

    ptype  比whatis的功能更强,他可以提供一个结构的定义

    pwd 显示当前工作目录

    pype 显示一个数据结构(如一个结构或C++类)的内容

    quit           q               终止 gdb.

    reverse-search 在源文件中反向搜索正规表达式

    run            r               执行当前被调试的程序.

      r args           --后面跟命令行参数

      ser args args    --设置命令行参数

      show args        --查看命令行参数

    search 在源文件中搜索正规表达式

    set variable 给变量赋值            #set i=100

    shell       使你能不离开 gdb 就执行 UNIX shell 命令.   #shell make

    signal 将一个信号发送到正在运行的进程

    step          s              执行一行源代码而且进入函数内部.

    thread        t               查看当前运行程序的线程信息.

    undisplay display命令的反命令,不要显示表达式

    until 结束当前循环

    up 上移栈帧,使另一函数成为当前函数

    watch        与awatch类似用来设置观察点,但程序只有当表达式的值发生改变时才会停止运行

     

     


    最新回复(0)