GDB 在arm开发板上的远程调试
来源:互联网 发布:河南网络诈骗案件 编辑:程序博客网 时间:2024/05/09 16:26
嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。调试时,应用程序在嵌入式目标系统上运行,而gdb调试在Host端。
一、编译安装gdb+gdbserver
这是我的编写的编译脚本:
#!/bin/sh
rundir=$(pwd)
tar xvf gdb-6.7.1.tar.bz2
mkdir gdbserv-build
mkdir gdb-arm-linux-build
#编译arm-linux-gdb
cd gdb-arm-linux-build
CC=cc ../gdb-6.7.1/configure --target=arm-linux --prefix=$rundir/gdb_install/gdb-arm-linux
make
make install
#交叉编译gdbserver
cd ../gdbserv-build/
CC=arm-linux-gcc ../gdb-6.7.1/gdb/gdbserver/configure --host=arm-linux --prefix=$rundir/gdb_install/gdbserv
make
make install
cd ..
rm gdbserv-build -rf
rm gdb-arm-linux-build -rf
rm gdb-6.7.1 -rf
一、编译安装gdb+gdbserver
这是我的编写的编译脚本:
#!/bin/sh
rundir=$(pwd)
tar xvf gdb-6.7.1.tar.bz2
mkdir gdbserv-build
mkdir gdb-arm-linux-build
#编译arm-linux-gdb
cd gdb-arm-linux-build
CC=cc ../gdb-6.7.1/configure --target=arm-linux --prefix=$rundir/gdb_install/gdb-arm-linux
make
make install
#交叉编译gdbserver
cd ../gdbserv-build/
CC=arm-linux-gcc ../gdb-6.7.1/gdb/gdbserver/configure --host=arm-linux --prefix=$rundir/gdb_install/gdbserv
make
make install
cd ..
rm gdbserv-build -rf
rm gdb-arm-linux-build -rf
rm gdb-6.7.1 -rf
二、调试使用:
1、交叉编译,带参数-g加入调试信息。
假设要调试的程序为test.c。
#> arm-linux-gcc -g test.c -o test
2、在Target Board开启gdbserver
#> gdbserver <host-ip>:port test
#> gdbserver 192.168.0.1:2234 test
gdbserver开始监听2345端口(你也可以设其他的值),然后启动test,你会看到“Process test created:pid=88”
3、回到Host端
#> arm-linux-gdb /mnt/nfs/test
最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”...
说明此gdb在X86的Host上运行,但是调试目标是ARM代码。
(gdb)target remote <target-board-ip>:port
gdb> target remote 192.168.0.12:2234
gdb> target remote 192.168.0.12:2234
注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。
建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用超级终端查看。
注意: 你可能会遇到主机和arm板都连同了但是却没有调试信息!
你可以在pc机端
gdb> symbol-file ../test (调用调试信息)
你可以在pc机端
gdb> symbol-file ../test (调用调试信息)
或者是:
#> ./arm-linux-gdb ../test
备注:就是要在开发板和pc主机上都要有运行的文件,调试信息是从本地的文件(../test)提取的!
转载:http://blog.sina.com.cn/s/blog_640531380100zvle.html
0 0
- GDB 在arm开发板上的远程调试
- GDB 在arm开发板上的远程调试(转载)
- 在ARM开发板中使用gdb进行远程调试
- GDB在ARM上的调试实战
- gdb远程调试arm+linux上的应用程序
- 使用GDB在ARM上进行开发调试
- 使用GDB在ARM上进行开发调试
- 使用GDB在ARM上进行开发调试
- 嵌入式开发远程调试arm-linux-gdb的移植
- 如何运用Gdb对ARM板上的程序进行远程调试
- gdb远程调试 arm
- arm 嵌入式下的 gdb 远程调试
- 开发板GDB远程调试
- gdb 远程qemu-arm调试
- GDB+Gdbserver ARM远程调试
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- 编译arm-linux-gdb和远程调试arm板程序
- scala-35:List的map、flatMap、foreach、filter操作代码实战
- StringUtils方法全集
- Mac上装window8.1、window10
- ACM中java的使用
- 编程技术面试的五大要点
- GDB 在arm开发板上的远程调试
- IO(书写器/阅读器)
- 递归算24点
- 【OAuth2.0】Spring Security OAuth2.0篇之初识
- ldd3 sbull编译遇到的问题 解决(部分)方法
- scala-36:List的partition、find、takeWhile、dropWhile、 span、forall、exsists操作代码实战
- android app 接收 微信支付 微信APP支付申请接入教程
- Impala,Hive,SparkSQL数据清洗后对后续查询的影响比较
- Java语言中的四种引用