您的位置:首页 > 其它

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

2018-01-04 15:03 330 查看
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退出远程调试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gdb arm 调试