由于最近想研究研究操作系统,自己想做个FAT12格式的短驱镜像,需要将自己编写的程序写到相应的位置上,于是写了个简单的c程序,居然还有点小问题。由于比较简单,就没有使用任何ide直接命令行里搞搞,于是排错的重任便落到了gdb身上。
说实在的,之前都有ide帮我们做好了,或者直接看着代码,通过printf进行排错,之前还真没用过gdb,废话不多,直接开搞。(忘记说了,本人是在windows下使用的,使用的是mingw)
baidu了下,然后实际使用了下,gdb还真是好用:
首先启动gdb,可以直接使用gdb加可执行程序完整路径,也可以直接gdb,然后再使用file命令载入可执行程序。(注意:要使用gdb则在编译的时候必须加入调试信息,即在gcc时加入-g 命令)。
几个重要的命令:
l 显示源代码(list)
set args 设置命令行参数(注意不包括xxx.exe,但是程序中argv中是有xxx.exe的)
show args 显示命令行参数
关于断点:
b 设置断点(break)
info break 查看断点
delete breakpoint x(x代表几号断点)
disable breakpoint x
whatis ptype 查看参数类型
set variable = value
next 单步(不进入函数)
step 单步(进入函数,通过finish退出函数)
call name 调用一个函数
bt 查看函数堆栈