gdb参数选项详解
gdb主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数即可。
gcc -g main.c -o main
要用gdb调试程序,必须在编译时加上-g和-ggdb选项,如果没有-g,将看不见程序的函数名和变量名,代替它们的全是运行时的内存地址。
gdb和gdbserver的编译器类型一致
开发机器安装gdb(x86环境)
gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf.tar.xz下载,其中bin目录下包含编译好的gdb
https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/arm-linux-gnueabihf/#/
目标程序执行机器(arm)
需要将编译好的gdbserver移动至目标机器安装
make install
或者直接使用该压缩包下编译好的gdbserver
https://launchpadlibrarian.net/155358238/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.xz
gdbserver启动
gdbserver localhost:1234 --attach 891
其中localhost为本机ip地址,或者直接未localhost也可以。
1234为远程调试端口号
891为要调试的进程号。可以通过ps -ef|grep xxx查看对应pid
gdb启动
gdb
gdb开启远程debug
target remote 192.168.123.244:1234
其中192.168.123.244为调试程序目标机器的ip
1234为调试程序开启的端口号,与gdbserver开启的端口号保持一致。
gdb命令使用参考如下文档
windows下安装gdb
Windows下如何使用和调试GDB-阿里云开发者社区
GDB调试可视化
https://zhuanlan.zhihu.com/p/563678056?utm_id=0#/
gdb命令使用
一步步教你使用GDB调试程序:从入门到精通的全面指南_gdb教程-CSDN博客
gdb调试命令
Gdb 入门+命令大全 - Iawen's Blog - 我喜欢这样自由的随手涂鸦, 因为我喜欢风......