编译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
主机是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
相关文章推荐
- Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件
- 使用QT CREATOR2.4.1创建工程,并在LINUX上运行,能编译,GDB+GDBSERVER调试(例子工程,dvrgui)
- Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件
- 编译安装gdb+insight和gdbserver远程调试
- 使用gdbserver调试arm应用程序
- 使用gdb进行编译和调试
- gdb的简单使用和gdb+gdbserver方式进行ARM程序调试
- C编译: 使用gdb调试
- 编译安装gdb+insight和gdbserver远程调试
- gdb的简单使用和gdb+gdbserver方式进行ARM程序调试
- gdbserver静态编译-调试失败的原因
- 使用gdbserver远程调试
- 使用gdbserver远程调试
- 使用gdbserver远程调试
- Cross compile gdbserver and use it in ARM linux (在ARM uClinux下编译和使用gdbserver)
- Cross compile gdbserver and use it in ARM linux (在ARM uClinux下编译和使用gdbserver)
- 使用gdbserver远程调试
- 【转】使用J-Link GDB Server + Eclipse CDT进行ARM程序调试
- 使用gdb、gdbserver在ARM-Linux下进行远程调试
- gdb的简单使用和gdb+gdbserver方式进行ARM程序调试