GDB嵌入式调试(以st7162平台为例)
来源:互联网 发布:16詹姆斯数据 编辑:程序博客网 时间:2024/05/16 04:57
目前遇到不少死机问题,缺少调试手段,下面对这种情况作下说明,st7162平台(stlinux)有两种调试手段:
一 gdbserver, 较为难用,需在目标板和pc端同时启动相应的程序,且无法调试死机,死机时无法输出堆栈信息
二 native gdb(只需在目标板运行) 死机时可打印堆栈信息
1)/opt/STM/STLinux-2.3/devkit/sh4/target/usr/bin/gdb 将其 copy到目标板 /usr/bin下
2)示例:
调试步骤,死机时可以打印堆栈:
/test/main对应的测试源码:
#include <stdio.h>
void fun1()
{
char *a=0;
int b=3,c=0;
printf("string a %s\n",b/c);
}
main()
{
char *a=0;
printf("string a\n");
fun1();
}
测试结果:
gdb
GNU gdb STMicroelectronics/Linux Base 6.5-14 [build Nov 3 2007]
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sh4-linux".
(gdb) file /test/main
Reading symbols from /test/main...done.
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /test/main
string a
Unaligned userspace access in "main" pid=352 pc=0x00400506 ins=0x011e
Program received signal SIGSEGV, Segmentation fault.
0x295d87c4 in strlen () from /lib/libc.so.6
(gdb) bt
#0 0x295d87c4 in strlen () from /lib/libc.so.6
#1 0x295b36f2 in vfprintf () from /lib/libc.so.6
Cannot access memory at address 0x7baddf6c
(gdb)
- GDB嵌入式调试(以st7162平台为例)
- GDB调试--以汇编语言为例
- 前言--嵌入式硬件接口设计(以ARM平台为例)
- 嵌入式环境图形加速浅析(以机顶盒平台为例)
- AES加解密效率测试(纯软件AESCBC-128/256)--以嵌入式Cortex-M0与M3 平台为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- 嵌入式的gdb调试
- 嵌入式 gdb调试收集
- 嵌入式 GDB调试技巧
- 嵌入式的gdb调试
- 嵌入式gdb + gdbserver调试
- anzhi84.py
- 从零开始,学习windows编程(8)--自己动手,编译CRT
- Graph Drawing算法书籍
- 使用UserLock实现工作站登陆限制
- 关于iPhone/iPad全屏截图与区域截图的几种方法总结
- GDB嵌入式调试(以st7162平台为例)
- 使用上面三个类的代码
- Linux内核 RPS/RFS功能详细测试分析
- IOS控件--UITabBarController
- Early Z Rejection
- TimesTen内存数据库问题总结
- sublimetext2出现问题重装后还是有问题
- 在用户需求中找到真正的创新(发人深省啊)
- activity 生命周期