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

来源:互联网 发布:机器人与人工智能大会 编辑:程序博客网 时间:2024/06/08 06:33

对于路由器上调试程序。如果采用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




0 0
原创粉丝点击