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

来源:互联网 发布:淘宝美工的工作内容 编辑:程序博客网 时间:2024/06/03 06:32
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退出远程调试
原创粉丝点击