操作系统:Ubuntu10.04
前言:
在程序崩溃后,如何快速定位问题。
以下方法适用于开发调试阶段,不太适用成品。
本文着眼于嵌入式,PC方面更简单。
核心:gdbserver + coredump
一,安装,配置,使用 gdbserver
arm linux下安装gdb,gdbserver调试器
二,启动 coredump
linux下ulimit命令下的coredump
三,实例
1,源码
点击(此处)折叠或打开
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- static void fun(char* a,char *b)
- {
- strcpy(a,"hello world");
- strcpy(b,"wo shi zhong guo ren");
- printf("%s,%s\n",a,b);
- }
- int main(int argc,char *argv[])
- {
- char temp[5] = {0};
- char temp2[5] = {0};
- fun(temp,temp2);
- return 0;
- }
2,结果
3,通过gdbserver来查看异常所在
a,设备,启动gdbserver
b,pc机,调试设备中的程序
c,pc机上的gdb中输入where,定位异常
from:http://blog.chinaunix.net/uid-28458801-id-4349219.html