gdb调试及gdbserver远程调试

来源:互联网 发布:淘宝左拦轮播图片尺寸 编辑:程序博客网 时间:2024/05/21 11:10

     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服务,进入要调试程序所在目录,输入下面命令:

     gdbserver启动

     表示在目标系统2000端口开启一个调试进程,example为要调试的程序

     然后在宿主机上启动gdb程序,同样进入要调试文件所在目录,启动调试器,装入调试文件,输入下面命令

     宿主机gdb启动

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

    连接目标板

    连接成功后,目标板显示

    remote debugging using:2000

    这样连接就成功了,各种命令就可以用了,还有个注意,gdbserver默认程序就运行了,所以不需要在用run命令了。

原创粉丝点击