linux中gdb常用命令

fiy 其他 45

回复

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

    在Linux中,GDB是一个强大的调试工具,常用于调试C和C++的程序。以下是一些常用的GDB命令:

    1. 启动程序:
    – `gdb `:启动GDB并加载要调试的程序。

    2. 设置断点:
    – `break :`:在指定文件的特定行设置断点。
    – `break `:在指定函数的入口点设置断点。
    – `break `:在当前文件的特定行设置断点。

    3. 运行程序:
    – `run`:开始运行程序。
    – `run `:开始运行程序,并传递命令行参数。

    4. 单步执行:
    – `next`:逐语句执行,并跳过函数调用。
    – `step`:逐语句执行,包括函数调用。

    5. 执行到指定行:
    – `continue`:从当前位置继续执行程序,直到遇到下一个断点或程序结束。
    – `finish`:执行完当前函数并返回调用者。

    6. 查看变量状态:
    – `print `:打印变量的值。
    – `display
    `:在每次停止时,持续打印变量的值。
    – `info locals`:显示当前函数的局部变量。
    – `info args`:显示当前函数的参数。

    7. 查看堆栈信息:
    – `backtrace`:打印当前的堆栈跟踪信息。
    – `up`:上移一个堆栈帧。
    – `down`:下移一个堆栈帧。

    8. 修改变量的值:
    – `set =`:修改指定变量的值。

    9. 控制程序的执行:
    – `continue`:继续执行程序,直到下一个断点或程序结束。
    – `kill`:终止正在运行的程序。

    10. 查看帮助信息:
    – `help`:显示GDB的帮助信息。
    – `help `:显示指定命令的帮助信息。

    这些是常用的GDB命令,可以帮助你调试程序并找出错误。熟练掌握这些命令将提高你的调试效率。

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

    在Linux中,GDB是一个非常常用的调试工具,可以帮助开发者跟踪程序的运行过程,定位并修复代码中的错误。下面是一些常用的GDB命令:

    1. `run`:启动程序并开始调试。
    2. `break`:设置断点。可以设置在指定的行号或函数名上,也可以设置条件断点。
    3. `next`和`step`:用于逐行执行程序。`next`命令会跳过函数调用和循环,而`step`命令会进入函数调用。
    4. `print`:显示变量的值。可以使用`print`命令在断点处查看程序的变量值。例如:`print count`会显示变量`count`的值。
    5. `backtrace`:显示函数调用栈。使用`backtrace`命令可以查看函数的调用顺序和参数值。
    6. `continue`:继续执行程序。使用`continue`命令可以让程序继续执行直到下一个断点或程序结束。
    7. `watch`:监视变量。可以使用`watch`命令设置一个监视点,当监视的变量的值发生改变时,程序会停下来。
    8. `info`:查看程序状态。`info`命令可以用来查看程序的各种状态信息,比如查看当前正在运行的线程、查看寄存器的值等。
    9. `quit`:退出调试。使用`quit`命令可以退出GDB调试。

    这些是GDB的一些常用命令,还有很多其他的命令都可以用来帮助开发者调试程序。掌握了这些命令,开发者可以更加高效地使用GDB来调试和定位程序中的问题。

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

    GDB是GNU提供的一个功能强大的调试工具,它可以帮助开发者在程序运行过程中进行调试和错误修复。下面是一些常用的GDB命令及其使用方法。

    1. 启动和退出GDB
    – 启动GDB:在终端中输入`gdb`命令,后面跟上需要调试的可执行文件的路径。例如:`gdb ./myprogram`
    – 退出GDB:输入`quit`命令或按下Ctrl + D键。

    2. 设置断点
    – 在指定行设置断点:`break line_number`。例如:`break 10`。
    – 在指定函数设置断点:`break function_name`。例如:`break main`。
    – 在指定文件设置断点:`break filename:line_number`。例如:`break main.c:20`。
    – 临时断点:`tbreak line_number`。临时断点会在被执行后自动删除。

    3. 查看和管理断点
    – 查看所有断点:`info breakpoints`或简写为`i b`。
    – 删除指定断点:`delete breakpoint_number`。例如:`delete 1`。
    – 删除所有断点:`delete`或`delete breakpoints`。

    4. 运行程序
    – 开始运行程序:`run`或简写为`r`。
    – 继续执行程序:`continue`或简写为`c`。
    – 单步执行程序:`step`或简写为`s`。单步执行会进入函数内部。
    – 单步执行程序,但不进入函数内部:`next`或简写为`n`。
    – 运行到指定行:`run to line_number`或简写为`r line_number`。

    5. 查看变量和表达式的值
    – 查看变量的值:`print variable_name`或简写为`p variable_name`。
    – 查看表达式的值:`print expression`或简写为`p expression`。
    – 查看多个变量的值:`info locals`或简写为`i locals`。
    – 查看全局变量的值:`info globals`或简写为`i globals`。

    6. 修改变量的值
    – 修改变量的值:`set variable_name = new_value`。例如:`set num = 10`。

    7. 跟踪程序的执行
    – 显示当前的执行位置:`where`或简写为`bt`。
    – 查看函数调用栈:`backtrace`或简写为`bt`。
    – 进入上一级函数:`up`。
    – 进入下一级函数:`down`。

    8. 调试多线程程序(需要GDB版本支持)
    – 列出所有线程:`info threads`或简写为`i th`。
    – 切换到指定线程:`thread thread_number`。例如:`thread 2`。
    – 查看当前线程的调用栈:`backtrace`或简写为`bt`。

    以上是一些常用的GDB命令,可以帮助你调试和修复程序中的错误。不过要注意,在使用GDB调试程序时,需要在编译时打开调试信息选项,通常是使用`-g`选项来编译可执行文件。另外,GDB还有许多其他的命令和选项,可以根据需要进一步学习和使用。

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

400-800-1024

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

分享本页
返回顶部