linux中gdb调试的命令

fiy 其他 17

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    GDB是在Linux系统中常用的调试工具,可以帮助开发者定位和修复程序中的错误。以下是一些在GDB中常用的调试命令:

    1. 启动程序:`gdb [executable_file]`,加载可执行文件并进入GDB调试环境。

    2. 设置断点:`break [function_name]`,设置在指定函数内的断点;`break [file_name:line_number]`,设置在指定文件和行号上的断点。

    3. 查看断点:`info breakpoints`,显示当前已设置的断点信息。

    4. 运行程序:`run`,开始执行被调试程序。

    5. 单步调试:`step`,逐行执行当前代码,并进入函数调用;`next`,逐行执行当前代码,不进入函数调用;`finish`,执行完当前函数,并返回到调用函数。

    6. 继续执行:`continue`,继续执行程序,直到下一个断点或程序结束。

    7. 打印变量:`print [variable_name]`,打印变量的值;`display [variable_name]`,在每次停下来时自动打印变量的值。

    8. 修改变量值:`set [variable_name]=[value]`,修改变量的值。

    9. 回溯调用栈:`backtrace`,显示当前函数的调用栈;`frame [frame_num]`,切换到指定帧;`up`,切换到上一层调用帧;`down`,切换到下一层调用帧。

    10. 查看源代码:`list [line_number]`,显示指定行附近的源代码;`list [function_name]`,显示指定函数的源代码。

    11. 异常处理:`catch [exception]`,设置捕获指定异常时停下来;`ignore [exception]`,忽略指定异常;`signal [signal_name]`,设置当接收到指定信号时停下来。

    12. 退出调试:`quit`,退出GDB调试。

    以上是一些常用的GDB调试命令,通过灵活运用这些命令,开发者可以更方便地定位和修复程序中的错误。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中,使用gdb进行调试是常见的方法之一。下面是一些常用的gdb调试命令:

    1. break:设置断点
    – break :在指定行号设置断点
    – break :在指定函数名设置断点
    – break ::在指定文件的指定行号设置断点
    – break

    :在指定内存地址设置断点

    2. run:运行程序
    – run :运行程序并传递参数

    3. next:逐过程执行
    – next:执行当前行,但是不进入函数内部
    – next :执行指定数量的行
    – next :执行到指定行号的行

    4. step:逐语句执行
    – step:执行当前行,并进入函数内部
    – step :执行指定数量的行
    – step :执行到指定行号的行

    5. continue:继续执行程序,直到下一个断点或程序结束

    6. print:打印变量的值
    – print :打印指定变量的值
    – print :打印指定表达式的值
    – print *

    :打印指定内存地址的值

    7. display:设置变量的自动显示
    – display :设置指定变量的自动显示
    – display :设置指定表达式的自动显示
    – display *

    :设置指定内存地址的自动显示

    8. info:显示调试信息
    – info breakpoints:显示当前设置的所有断点
    – info watchpoints:显示当前设置的所有监视点
    – info locals:显示当前函数的局部变量
    – info registers:显示当前寄存器的值

    9. delete:删除断点或监视点
    – delete :删除指定编号的断点或监视点
    – delete breakpoints:删除所有断点
    – delete watchpoints:删除所有监视点

    10. quit:退出gdb调试器

    以上是一些常用的gdb调试命令,可以根据具体的调试需求使用不同的命令来辅助调试程序。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    GDB(GNU Debugger)是一种功能强大的调试工具,可用于在Linux环境下调试C、C ++、Fortran等程序。它提供了一组丰富的命令,用于控制程序的执行、设置断点、检查变量值等。下面是一些常用的GDB调试命令,按照功能进行分类介绍。

    1. 启动和退出GDB
    – 启动GDB:在命令行中输入`gdb`命令,然后加上可执行文件的路径和名称,例如`gdb ./a.out`
    – 退出GDB:在GDB命令行中输入`quit`或者按下`Ctrl + D`

    2. 设置断点
    – 在指定行设置断点:使用`break`命令,后面跟上文件名和行号,例如`break main.c:10`
    – 在指定函数设置断点:使用`break`命令,后面跟上函数名,例如`break my_function`
    – 列出所有断点:使用`info break`命令

    3. 执行程序
    – 运行程序:使用`run`命令,后面可以跟上程序启动时所需要的参数,例如`run arg1 arg2`
    – 单步执行:使用`next`命令,逐语句地执行代码
    – 跳过函数调用:使用`step`命令,跳过函数,直接进入函数内部执行
    – 继续执行直到下一个断点:使用`continue`命令

    4. 查看和修改变量
    – 查看变量的值:使用`print`命令,后面跟上变量名,例如`print x`
    – 查看表达式的值:使用`print`命令,后面跟上表达式,例如`print a + b`
    – 修改变量的值:使用`set`命令,后面跟上变量名和新值,例如`set x = 10`

    5. 查看程序状态和堆栈
    – 查看当前所在的源代码位置:使用`list`命令
    – 查看程序状态:使用`info`命令,例如`info breakpoints`查看当前设置的所有断点
    – 查看函数调用栈:使用`backtrace`命令,显示从程序启动到当前位置所有的函数调用栈信息
    – 查看堆栈帧中的变量值:使用`frame`命令,跳转到指定堆栈帧

    6. 内存和寄存器
    – 查看寄存器的值:使用`info registers`命令
    – 查看指定内存地址的内容:使用`x`命令,后面跟上地址,例如`x/4wx &x`

    7. 调试多线程程序
    – 列出当前所有线程:使用`info threads`命令
    – 切换到指定线程:使用`thread`命令,后面跟上线程号,例如`thread 3`
    – 设置断点只作用于指定线程:使用`thread breakpoint`命令,后面跟上线程号和断点信息,例如`thread breakpoint 3 main.c:10`

    这只是GDB命令的一小部分,GDB还提供了许多其他的命令和功能,通过学习GDB的手册和实践,可以更充分地利用GDB进行程序调试。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部