当前位置:
文档之家› 嵌入式调试程序GDB Server
嵌入式调试程序GDB Server
gdbserver方式 gdbserver本身的体积很小,能够在具有很少存储容量的目标系统上独 立运行,因而非常适合于嵌入式环境
stub(插桩)方式 stub方式则需要通过链接器把调试代理和要调试的程序链接成一个可执 行的应用程序文件,如果程序运行在没有操作系统的机器上,那么stub 需要提供异常和中断处理序,以及串口驱动程序,如果程序运行在有操 作系统的嵌入式平台上,那么stub需要修改串口驱动程序和操作系统异 常处理。
GDB Server
gdbserver是一个可以独立运行的控制程序,它可以运行在类UNIX操作 系统上,当然,也可以运行在Linux的诸多变种。gdbserver允许远程 GDB调试器通过target remote命令与运行在目标板上的程序建立连 接。 GDB和gdbserver之间可以通过串口线或TCP/IP网络连接通信, 采 用 的 通 信 协 议 是 标 准 的 GDB 远 程 串 行 协 议 ( Remote Serial Protocol RSP)。
编译阶段
# make CC=arm-linux-gcc
Step Four
远程调试程序 交叉编译
# arm-linux-gcc –g tstgdb.c –o tstgdb
目标机运行
# ./gdbserver 10.0.0.10:2335 tstgdb
Step Four
远程调试程序 开发机 调试程序
了解GDB Server
远程调试环境由宿主机GDB和目标机调试stub共同构成, 两者通过串口或TCP连接。使用 GDB标准程串行协议协同 工作,实现对目标机上的系统内核和上层应用的监控和调试 功能。调试stub是嵌入式系统中的一段代码,作为宿主机 GDB和目标机调试程序间的一个媒介而存在。
GDB的两种调试代理方式
开发环境
192.168.0.121 文件服务器
192.168.0.122 开发机(宿主机)
10.0.0.1
目标机(arm平台) gdbserver
10.0.0.10
任务要求
Step One Step Two Step Three Step Four
解压GDB源码包 配置编译gdb 配置编译gdbserver 远B
解压gcc源码包
# tar xzvf gdb-7.4.tar.gz
安装相关工具
# sudo apt-get install texinfo # sudo apt-get install libncurses5-dev # sudo apt-get install m4 # sudo apt-get install flex # sudo apt-get install bison
# arm-linux-gdb tstgdb
(gdb)target remote 10.0.0.10:2335
Step Two
安装GDB
# ./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
# make # make install
Step Three
编译gdb server 配置
# cd /gdb/gdbserver # ./configure --target=arm-linux --host=arm-linux