首页 > 试题广场 >

简述一下 GDB 常见的调试命令

[问答题]
简述一下 GDB 常见的调试命令
b某行打断点 r运行程序,断点停 c继续执行 p打印指定值 n单步运行 q终止调试
发表于 2022-10-18 08:26:36 回复(0)
启动gdb:gdb 可执行性文件 关闭gdb:quit/q 查看当前文件代码:l/list 行号或者函数名 查看非当前文件代码:l/list 文件名:行号或函数名 设置断点:b/break 查看断点:i/info b/break 删除断点:d/delete 断点编号 运行gdb:start(运行到第一行停) run(遇到断点停止) 继续运行:c(到下一个断点停) 向下执行一行代码(不会进入函数体):n/next
发表于 2023-06-12 20:11:44 回复(0)
GDB(GNU Debugger)是一种强大的Unix下的源代码调试器,它可以帮助程序员定位和修复程序中的错误。以下是一些常见的GDB调试命令: list(l):显示当前查看的源代码。 info(i):显示关于当前调试会话的信息,例如程序的运行状态、寄存器内容等。 break(b):在指定的函数或行设置断点,程序运行到此断点会停止。 run(r):运行程序,如果程序遇到断点会停止。 next(n):执行下一行代码,如果遇到函数调用会直接跳过进入下一行。 step(s):执行下一行代码,如果遇到函数调用会进入函数体执行。 continue(c):继续执行程序直到遇到下一个断点。 print(p):打印变量的值。 finish:执行完当前函数的剩余代码并返回。 quit(q):退出GDB。 以上命令都是GDB调试中的常用命令,每个命令都有其特定的功能,可以根据需要进行使用。
编辑于 2024-01-23 19:38:06 回复(0)
补充: gdb attach pid:调试运行中的进城。 info thread:显示线程信息。 thread n:切换到指定线程。 bt:查看程序栈。
发表于 2023-02-24 23:19:47 回复(0)
r 运行 c 从中断的地方开始继续运行 bt 查看栈帧 print 打印变量 b 设置断点 info b 查看断点 n 单步,但不进入函数 s 单步,遇到函数会进入函数 d 删除断点 运行gdb命令时可以通过--args选项来传入参数,调试传入的参数,也就是说可以使用gdb --args gdb来调试gdb
发表于 2023-09-05 20:04:57 回复(0)
‘run’:执行程序; ‘break’:特定位置设置断点; ‘continue’:从当前位置执行,直到遇到下一个断点; ‘next’:执行下一行代码,但不进入函数内部; ‘step’:执行下一行代码,如果是函数则进入函数内部; ‘print’:打印变量值; ‘list’:显示当前代码的几行; ‘info’:提供关于程序状态的信息,如断点、线程、变量等; ‘quit’:退出GDB调试;
编辑于 2024-02-01 11:48:03 回复(0)
gdb 可执行文件:启动gdb quit:退出 break:设置断点 run:运行程序 next:单步执行,遇到函数不进入 step:单步执行,遇到函数调用会进入函数内部继续执行 info breakpoints:查看所有断点信息 disable 断点编号:禁用这个编号的断点 enable 断点编号:启用这个编号的断点 delete 断点编号:删除断点 continue:继续运行到下一个断点或者程序结束 fininsh:让程序继续运行直到当前函数返回 print 变量:显示变量的值 whatis :显示变量的类型 set variables :设置变量的值 backtrace:显示程序调用栈信息 info threads:显示所有线程的信息 thread 线程编号:进入这个线程中调试
发表于 2025-04-20 09:56:08 回复(0)
生成调试信息 -g 启动gdb gdb 可执行文件 代码查看类 ● l (list) 行号/ 函数名 断点类 ● b (breakpoint) 行号 ● b 源文件:函数名 ● b 源文件:行号 ● info b 查看断点 ● d(delete) 断点编号 删除断点 ● d breakpoints 删除所有断点 ● disable b(breakpoints) 使所有断点无效 ● enable b(breakpoints) 使所有断点无效 执行类 ● r run 执行直到遇到断点 ● n next ● s step ● until + 行号;相当于执行到当前光标处 ● c(continue) 执行 到下一个断点 ● finish | fin 相当于 step out 变量类 ● p(print) 变量名 查看变量 ● set var 修改变量 ● display 跟踪查看一个变量,每次停下来都显示它的值 ● undisplay 变量名编号 ● display &变量名 查看变量地址 函数调用栈 ● bt(backtrace)
发表于 2025-03-25 13:20:10 回复(0)
gdb ./your_project
发表于 2025-03-17 11:27:03 回复(0)
GDB常见的调试命令包括:n1. 启动和退出:使用 'gdb 可执行程序' 启动调试,使用 'quit' 或 'q' 退出。n2. 设置断点:使用 'break' 或 'b' 在指定行或函数设置断点。n3. 运行程序:使用 'run' 启动程序,遇到断点会暂停。n4. 继续执行:使用 'continue' 或 'c' 继续执行到下一个断点。n5. 单步调试:使用 'next' 或 'n' 向下执行一行代码,使用 'step' 或 's' 进入函数体。n6. 查看变量:使用 'print' 或 'p' 打印变量值,使用 'ptype' 打印变量类型。n7. 查看代码:使用 'list' 或 'l' 查看源代码。n8. 获取帮助:使用 'help' 查看GDB的帮助信息。
发表于 2025-01-09 16:21:47 回复(0)
1、查看core文件堆栈:1.1gdb 可执行文件 core文件,进入gdb命令行,1.2输入bt,查看堆栈信息,3输入l,查看当前代码;2、查看可执行文件:2.1gdb 可执行文件,进入gdb命令行,2.2设置断点b 行数,函数,文件,查看断点,删除断点,2.3run 参数,启动程序运行,2.4p查看变量值,2.5n单布调试,不进入函数,2.6s单步调试,进入函数,2.7c继续执行,进入下一个断点,2.8quit,退出gdb命令行;3、调试正在运行的程序:3.1gdb -p pid,进入gdb命令行,查看堆栈bt,p打印变量,b设置断点,c恢复执行,l查看当前文件代码,detach断开调试并恢复进程执行,quit退出gdb命令行;4、多进程调试follow-fork-mode parent/child,5、多线程调试thread info,thread id
发表于 2024-11-22 10:02:02 回复(0)
GDB(GNU Debugger)是一个功能强大的调试工具,常用于调试C、C++等程序。以下是一些常见的 GDB 调试命令: 1. **启动程序**: - `gdb ./your_program`:启动 GDB 并加载要调试的可执行文件。 2. **运行程序**: - `run [args]`:运行程序,可带参数。 - `r`:使用 `r` 作为 `run` 的缩写。 3. **设置断点**: - `break [file:]function`:在指定函数设置断点。 - `break line_number`:在指定行设置断点。 - `break`:显示当前所有断点。 - `delete`:删除断点。 4. **执行程序**: - `next`:单步执行(不进入函数)。 - `step`:单步执行(进入函数)。 - `finish`:执行完当前函数。 5. **查看代码**: - `list`:显示源代码。 - `list line_number`:从指定行号开始显示源代码。 6. **查看变量**: - `print var_name`:打印变量的值。 - `display var_name`:持续打印变量的值。 7. **查看堆栈**: - `backtrace`:显示当前调用堆栈。 - `frame n`:切换到第 n 层堆栈。 8. **查看内存**: - `x/nfu addr`:以指定格式显示内存内容。 - `n`:显示的单位数量。 - `f`:显示的格式,如 x(16 进制)。 - `u`:单位,如 b(字节)、w(字)、g(双字)。 9. **调试信息**: - `info locals`:显示当前函数的局部变量。 - `info args`:显示当前函数的参数。 - `info breakpoints`:显示当前设置的断点信息。 10. **退出 GDB**: - `quit`:退出 GDB。 这些命令只是 GDB 中的一部分,GDB 提供了许多功能强大的调试功能,可以帮助开发者诊断和解决程序中的问题。详细的命令和功能可以查阅 GDB 的文档或使用 `help` 命令在 GDB 中获取帮助信息。
发表于 2024-10-15 16:41:16 回复(0)
启动gdb:gdb *.out 关闭gdb:quit/q 设置断点:b/break 查看断点:i/info b/break 删除断点:d/delete 端点编号 运行gdb:start运行到第一行停 run运行到断点停 继续运行:c 向下执行一行:n
发表于 2024-08-06 09:43:24 回复(0)
gdb生成调试文件,r运行,break打断点,q退出,next运行到下一个断点,printf打印目前变量值
发表于 2024-07-04 20:01:56 回复(0)
b s watch quit info d c n
发表于 2024-07-01 20:19:06 回复(0)
gdb启动 list break b run r c 继续 next n单步 quit q退出 enter上次指令
发表于 2024-06-24 09:21:01 回复(0)
b 打断点 r 运行程序 c继续执行 p打印变量 n单步运行
发表于 2024-06-08 15:46:50 回复(2)
GDB是源代码调试器,l是查看,b是打断,r是运行
发表于 2024-04-16 14:34:34 回复(0)
breakpoint watch n q x
编辑于 2024-03-29 18:32:40 回复(0)
b打断点 i查看断点信息 r运行程序 c继续执行 p打印打断点内存值 n下一个断点,不进入函数内部 s下一个断点,进入函数内部 q退出
发表于 2024-03-27 07:43:03 回复(0)