使用gdb+gdbserver调试嵌入式程序
来源:互联网 发布:深圳蜂窝网络方成林 编辑:程序博客网 时间:2024/04/25 04:33
gdb+gdbserver 调试嵌入式程序的例子
如果环境没有提供交叉编译程序gdbserver ,
可以参考交叉编译步骤
1.arm 上的一个程序monitorAll
是我调试的例子, 它在客户端的执行命令如下.
./monitorAll -qws -font wenquanyi
2.用gdbserver 调试的步骤:
1.target 端:
gdbserver –multi 192.168.1.101:1234
启动gdbserver, 监听192.168.101:1234端口. 支持调试多就进程
- 192.168.1.101 —> 主机host的IP地址
- 1234 —>target端开放的服务端口, 将来由主机端连接进来
2.host 端:
. debug.sh
把脚本补充完全,如下:
2.1. debug.sh 的写法:
#!/bin/basharm-linux-gnueabihf-gdb -x gdbinit
gdbinit 是gdb启动后执行的脚本文件
2.2. gdbinit 的写法
target extended-remote 192.168.1.136:1234 file monitorAll set args -qws -font wenquanyi b main r
-192.168.1.136:1234 —>目标机的IP地址和端口
3.更进一步
target 的上的可执行文件名称可以和host上的不一样.
target 上可以执行去除符号的程序,而host上调试带debug信息的程序,这样可以大大减小 target上的程序大小, 这样需要在host端设定一下target端的运行程序名称. 用set remote exec-file
命令
完整脚本如下例: gdbinit 文件
target extended-remote 192.168.1.136:1234file monitorAll_debugset remote exec-file monitorAllset args -qws -font wenquanyib mainr
- 192.168.1.136 客户端IP
- 1234 使用的端口
- monitorAll_debug —>host端带调试信息的程序
- monitorAll —>target端被调试程序(可以不带debug信息)
4.再进一步
gdb 的前端可以使用vim, 可参考vim做调试前端
也可以使用emacs, 前端调试环境建立请自行baidu.
也可以使用其它前端例如ddd之类的等.
注意对应的gdb调试程序需要用update-alternatives调整正确.
0 0
- 使用gdb+gdbserver调试嵌入式程序
- 嵌入式gdb + gdbserver调试
- GDB+GdbServer: ARM程序调试
- GDB+GdbServer: ARM程序调试
- GDB+GdbServer: ARM程序调试
- GDB+GdbServer: ARM程序调试
- GDB+GdbServer: ARM程序调试
- gdb+gdbserver调试ARM程序
- gdb+gdbserver方式进行ARM程序调试
- gdb+gdbserver 方式进行ARM 程序调试
- GDB+GDBServer方式进行ARM程序调试
- GDB+GDBServer方式进行ARM程序调试
- gdb+gdbserver调试arm-linux程序
- gdb+gdbserver方式进行ARM程序调试
- gdb+gdbserver调试arm-linux程序
- gdb+gdbserver方式进行ARM程序调试
- gdb+gdbserver调试arm-linux程序
- gdb+gdbserver调试arm-linux程序
- Java输入输出流
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- 常用复杂UI收集
- Domino与AD账户同步(一)
- UBoot常用命令手册[转载]
- 使用gdb+gdbserver调试嵌入式程序
- 我是这样发现ISP劫持HTTP请求的
- 谁说VR没市场?
- 机器学习——对贝叶斯的理解
- TensorFlow学习-基于CNN实现手写数字识别
- [k8s]kube-proxy浅析
- Java中static修饰的方法和非static修饰的方法的区别
- Java:按值传递还是按引用传递详细解说
- Android 中Toast的使用小技巧