下载此文档

使用gdb调试linux下的程序解析.doc


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
1 / 17
使用GDB调试Linux应用程序
 
版本:
2009-04
.29
文档创建。
使用GDB调试Linux应用程序
Team MCUZone 本文演示使用GDB调试本站AR1 / 17
使用GDB调试Linux应用程序
 
版本:
2009-04
.29
文档创建。
使用GDB调试Linux应用程序
Team MCUZone 本文演示使用GDB调试本站ARM开发板上的Linux应用程序的过程。包含源程序编译,GDB,DDD,insight的使用。调试器与开发板使用网络连接。。
2 / 17
一,准备工作
1.在开发板上建立Linux运行环境
启动。
 
制作根

3 / 17
 
使用如下命令编译:
 
注意其中的-g参数,指明生成debug信息。
将生成的dbgtst文件复制到rootfs的目录下,比如/usr/testapp。
启动开发板,以NFS方式mount根文件系统(rootfs。
.,Linux .。
三,使用GDB
从arm-none-linux-gnueabi的工具链相应目录下复制gdbserver到开发板:
4 / 17

将其放到开发板的/usr/bin下:

在开发板上运行gdbserver:

此时gdbserver将在2345端口等待远端连接。
切换到Linux server上,运行arm-none-linux-gnueabi-gdb:
5 / 17
 
通过arm-none-linux-gnueabi-gdb dbgtst启动命令行调试器,在(gdb提示符下运行
命令target remote :2345将连接到开发板的gdbserver,下面就可以用gdb 的命令开始调试。
例如l命令列出源代码:

使用b命令设置断点:
6 / 17

使用c运行程序:

再次设置断点:
 
使用n单步运行:
7 / 17

使用p打印变量:
 
由于优化的原因,不是所有的变量都可以通过p查看。
调试结束,通过disconnect断开gdbserver的连接,停止调试,并使用q退出gdb:

开发板上的gdbserver也有相应提示:
 
在命令行下,也可以使用arm-none-linux-gnueabi-gdbtui,
8 / 17

运行起来后如下图:

窗口上方会有代码的显示,下面仍然是命令行方式操作。比纯命令行稍有改进,该方式可以显示代码运行的位置:
9 / 17
 
调试过程中被调试程序在开发板上也有相应的输出:
 
调试完成需要断开连接。
四,使用DDD
如果觉得命令行界面不是很方便,也可以选择DDD这个前端。
10 / 17
首先需要在宿组机上安装DDD,

输入Y或者直接回车,即可开始从网络安装。
安装完成:

输入ddd开始运行:
11 / 17
 
上方显示源代码,最下面是命令行。在命令行输入:

连接到开发板上等待连接的gdbserver。连接上后,可以用图形方式设置断点:

使用命令按钮控制代码运行:
12 / 17

代码运行如下图:
 
调试完成断开连接。
五,使用insight
如果觉得DDD的界面仍然不OK,可以使用insight。
13 / 17
展开insight源码后,使用下面命令配置:

编译获得的可执行文件:

直接运行arm-none-linux-gnueabi-insight:
 
14 / 17
配置target:

此时需要使得远端的gdbserver处于等待连接的状态。
 
使用file下的open命令打开调试文件:
15 / 17

使用Run下的命令连接到target:
 
成功连接:
16 / 17

点击代码左侧短横线可以设置断点,并可以打开寄存器和变量查看窗口:

使用工具栏上的调试控制按钮可以控制程序的运行,使用右侧的下拉栏,可以选择代码查看的方式。
17 / 17
调试完成使用Run里的命令断开连接即可。
六,总结
比较上面的几种调试方式,可以看见insight的界面最为友好,而gdb对系统的依赖最低,无需图形界面的支持。
七,一些事项
本文并没有描述GDB的命令,在以上三种调试方式下均可以使用GDB命令。

使用gdb调试linux下的程序解析 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人薇薇安
  • 文件大小376 KB
  • 时间2022-04-03
最近更新