您的位置:首页 > 其它

编译gdb和gdbserver使用wget上传到路由执行调试

2017-05-10 16:53 453 查看
对于路由器上调试程序。如果采用gdb的方式远程调试,那么需要编译gdbserver。并且上传到路由器当中。然后远端实现gdb调试功能。

主机是x86_64 。路由是mips架构。其他略有不同。总体是一样的

mipsel是小端模式。mips是大端模式

1编译gdb和gdbserver

一定要注意gdbserver的版本和gdb的版本,最好相互匹配,我测试的时候。同一个版本不是GDB编译问题就是GDBSERVER问题。只能分开采用不同版本。

编译器的版本也最好匹配。

GDBSERVER在GDB源码的 gdb/gdbserver目录

1.1编译GDB

GDB版本 GDB7.10

本机GCC编译器版本gcc5.4.0

cd /gdb7.10

mkdir bin

cd bin

../configure --target=mipsel-linux

make -j8

由于gdb在本机编译,本机执行,目标是mipsel。所以configure就是这样。

2

GDBSERVER版本 GDB7.7

交叉编译器gcc版本4.6.3  是openwrt编译好的工具链

cd /gdb/gdbserver

mdkir bin

cd bin

export CC=/home/xxx/src_file/openwrt_/malta/r2/bin/mipsel-openwrt-linux-gcc

export CXX=/home/xxx/src_file/openwrt_/malta/r2/bin/mipsel-openwrt-linux-g++

../configure --target=mipsel-linux --host=mipsel-linux

make -j8

gdbserver是运行在mips上。目标也是调试mips的。

编译完毕以后得到了gdbserver和gdb。注意编译gdbserver环境必须和路由器上的一样。否则gdb会找不到各种连接库。

在搭建好主机的ftp服务器以后

可以在路由中使用

wget ftp://admin:admin@192.168.1.100/filename下载文件。
下载完毕以后使用chmod+x来改变bin

使用gdbserver ip:port filename开启调试端口。

或者gdbserver 192.168.1.100 --attach  processid

注意这里的ip是gdb所在的远程调试主机的ip

远端使用 

./gdb

target remote  ip:port 

这里的ip是gbbserver的ip。也就是板子的ip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: