内容提要
这是我在命令行调试程序的常用步骤:使用gcc编译,使用gdb调试,设置断点并运行程序。常用命令包括逐步执行、打印变量和设置断点。
关键要点
-
使用gcc编译程序,命令为:$ gcc myprogram.c -g -o myprogram
-
使用gdb调试程序,命令为:$ gdb -tui myprogram
-
设置断点,命令为:(gdb) break main
-
运行程序,命令为:(gdb) run
-
常用调试命令包括:逐步执行、打印变量和设置断点
-
逐步执行命令:step (s) - 进入函数,next (n) - 跳过函数
-
运行到特定行:until 123 (unt 123)
-
打印局部变量:info locals (i lo)
-
打印变量值:print myvar (p myvar)
-
显示变量值:display myvar (disp myvar)
-
停止显示变量值:undisplay myvar (und myvar)
-
设置变量值:set myvar = 0 (s myvar = 0)
-
添加断点:break 456 (b 456)
-
列出所有断点:info breakpoints (i b)
-
删除所有断点:delete (d)
-
跳转到函数:list main (l main)
-
跳转到特定文件和行:list foo.c:789 (l foo.c:789)
-
打印当前执行位置:where (whe)
-
终止当前执行:kill (k)
-
使用Ctrl-l刷新屏幕,focus cmd使箭头键在命令行中工作,focus src使其滚动显示的源代码
延伸问答
如何使用gcc编译程序?
使用命令:$ gcc myprogram.c -g -o myprogram。
gdb调试程序的基本命令是什么?
使用命令:$ gdb -tui myprogram。
如何在gdb中设置断点?
使用命令:(gdb) break main 或 (gdb) break 456。
在gdb中如何逐步执行代码?
使用命令:step (s) 进入函数,next (n) 跳过函数。
如何打印变量的值?
使用命令:print myvar (p myvar) 打印变量值。
如何查看当前执行位置?
使用命令:where (whe) 打印当前执行位置。