GDB+GDBServer安装
2015-11-21 18:39
211 查看
通过网络调试
1.编译gdb,gdbserverxz -d gdb-7.8.2.xz
tar -xvf gdb-7.8.2.tar
vim ./gdb-7.8.2/gdb/remote.c
修改6212行附近的报错处理,改为:
if (buf_len > 2 * rsa->sizeof_g_packet) { rsa->sizeof_g_packet = buf_len ; for (i = 0; i < gdbarch_num_regs (gdbarch); i++) { if (rsa->regs->pnum == -1) continue; if (rsa->regs->offset >= rsa->sizeof_g_packet) rsa->regs->in_g_packet = 0; else rsa->regs->in_g_packet = 1; } }
cd ./gdb-7.8.2
./configure –target=arm-linux
make
make install(直接将gdb安装到主机)
cd ./gdb-7.8.2/gdb/gdbserver
./configure –host=arm-linux
make
cp ./gdbserver到开发板根文件系统
编译要调试的应用,编译时加上-g选项
在ARM板上
gdbserver 192.168.1.17:2345 ./test_debug
在PC上
/bin/arm-linux-gdb ./test_debug
输入:
set solib-search-path /mnt/rootfs/lib
target remote 192.168.1.30:2345
然后: 使用gdb命令来控制程序
使用coredump调试
让程序在开发板上直接运行,当它发生错误时,令它产生core dump文件然后使用gdb根据core dump文件找到发生错误的地方
在ARM板上:
1. ulimit -c unlimited
2. 执行应用程序 : 程序出错时会在当前目录下生成名为core的文件
在PC上:
3. /bin/arm-linux-gdb ./test_debug ./core
相关文章推荐
- 项目4 - 利用遍历思想求解图问题(6-7)
- 浅谈二叉树遍历的栈方法
- Jenkins邮件模板
- 项目4 - 利用遍历思想求解图问题(1-5)
- Java——用户名输入框
- 闪屏页面开发遇到的问题you need to use a theme.appcompat theme (or descendant)
- 闪屏页面开发遇到的问题you need to use a theme.appcompat theme (or descendant)
- IOS通过数组给Cell中的文本框和小图标赋值
- 闪屏页面开发遇到的问题you need to use a theme.appcompat theme (or descendant)
- 类库/框架/SDK
- 设置了Media.EXTERNAL_CONTENT_URI却找不到音频/视频的解决方法
- C++学习笔记27——泛型算法之统计(accumate count)
- iOS开发中同时识别旋转与缩放手势
- path与classpath区别,内存管理
- 项目5 - 迷宫问题之图深度优先遍历解法
- Android之GPS定位详解
- Fifteen scrum meeting 2015-11-21
- 将一个字符串转换为对应的整数
- CCNP 常用协议基本总结
- 在iOS 8中使用UIAlertController