【GDB】gdbserver的使用,远程调试开发板

0、将gdbserver拷贝到目标板子上

注:gdbserver在交叉编译工具目录/debug-root/usr/bin下
可用file命令查看
------------------------------------------------------------
$ file gdbserver
gdbserver: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.31, not stripped
-------------------------------------------------------------

1、编译可执行程序,需要添加调试选项 -g

2、将可执行程序拷贝至目标板

3、在【目标板】上使用gdbserver运行可执行程序
    格式:./gdbserver 目标板ip:端口号 app,输出信息如下
------------------------------------------------------------
Process dcu_app created; pid = 1860
Listening on port 1234
------------------------------------------------------------
    
4、在【PC端】上运行gdb
4.1 使用gdb 运行可执行程序
    $ arm-fsl-linux-gnueabi-gdb app
4.2 出现(gdb)后输入远程调试命令,格式如下
    (gdb) target remote 目标板ip:端口号
4.3 出现(gdb)后输入c远程启动程序,如下
    (gdb) c
4.4 出现段错误后,使用bt来打印调试栈中的信息,如下
-------------------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1828]
handler () at pthread_getdata.c:331
331    pthread_getdata.c: 没有那个文件或目录.
    in pthread_getdata.c
(gdb) bt
#0  handler () at pthread_getdata.c:331
#1  0x0000d8b8 in pthread_getdata (arg=<value optimized out>) at pthread_getdata.c:991
#2  0x76f41b10 in ?? ()
#3  0x76f41b10 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
----------------------------------------------------------------------------
4.5 输入q,选择y退出远程调试
发布了294 篇原创文章 · 获赞 248 · 访问量 36万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览