您的位置:首页 > 其它

gdb调试及gdbserver远程调试

2009-08-15 15:17 721 查看
gdb调试器是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具,具有强大的功能,足有与Visual Stido媲美,当然友好的界面是没法相比的,呵呵。

开始编译程序将调试信息包含进去,gdb调试器运行在shell中输入gdb就好,也可以输入gdb filename,filename是待调试程序名,下面就按断点、单步等命令一个一个介绍。

1. 进入gdb gdb

退出gdb q(uit)

装入调试文件 file filename

终止调试程序 kill

2. 显示源代码 l(ist )

list n 显示第n行上下5行的代码

3. 断点break

b(reak) n 在第n行设置断点

b 函数名 在函数名设置断点

b [文件名:] 行号或函数名 在文件中特定行或特定函数设置断点

b [文件名:] 行号或函数名 <条件表达式> 满足条件表达式才进入断点

设置的断点都会返回一个断点编号,上面的类似还有tbreak临时断点,达到断点后就指定备删除。

delete [断点号] 删除指定断点

clear 清除所有断点

info 查看断点信息

disable [断点号] 停止断点

enable [断点号] 使能断点

ingore [断点号] <num> 忽略断点num次

condtion[断点号]<条件表达式> 修改断点的条件

4. 单步

n(ext) 相当于step over

s(tep) 相当于step in

5. 运行程序 r(un) funpara

接着运行程序 c(ontinue)

6. 手动设置变量值 set variable i=4

远程gdb调试,嵌入式开发目标板资源有限,没法在目标板上直接进行调试,通常实用gdb+gdbserver的方式进行调试,gdbserver运行在目标板上,gdb运行在宿主机上。

首先,目标板要包含gdbserver,在目标板上启动gdbserver服务,进入要调试程序所在目录,输入下面命令:



表示在目标系统2000端口开启一个调试进程,example为要调试的程序
然后在宿主机上启动gdb程序,同样进入要调试文件所在目录,启动调试器,装入调试文件,输入下面命令



连接目标板连接,输入命令:



连接成功后,目标板显示
remote debugging using:2000
这样连接就成功了,各种命令就可以用了,还有个注意,gdbserver默认程序就运行了,所以不需要在用run命令了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: