Linux下程序崩溃,ulimit,coredump,gdbserver
操作系统: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
Linux下程序崩溃,ulimit,coredump,gdbserver的更多相关文章
- Linux下程序的机器级表示学习心得
Linux下程序的机器级表示学习心得 上周学习完Linux程序的机器级表示后,对于其中有些还是掌握的不太透彻.对于老师提出的关于本章一些细节的问题还是有不会,所以又重新温习了一下上周的学习内容,以下为 ...
- linux下线程调试 ulimit core
在linux 下写线程程序的同学预计都遇到过找bug找到崩溃的情况.多线程情况下bug的追踪实在是不easy. 如今我来介绍一个好用的方法 ulimit core. 先简介一下ulimit是个什么(你 ...
- 制作Linux下程序安装包——使用脚本打包bin、run等安装包
制作简单的安装包的时候可以简单的用cat命令连接两个文件,然后头部是脚本文件,执行的时候把下面的文件分解出来就行了.一般这个后部分的文件是个压缩 包,那样,就能够打包很多文件了,在脚本中解压出来即可. ...
- Linux下程序对拍_C++
此博客需要付费才阅读,因为该博客实用性十分强,且十分容易理解 若需购买请联系博主,联系方式戳这 http://www.cnblogs.com/hadilo/p/5932395.html 主要介绍如何在 ...
- [转] Linux下程序的加载、运行和终止流程
TAG: linux, main, _start DATE: 2013-08-08 原文地址: http://blog.csdn.net/tigerscorpio/article/details/62 ...
- linux下程序JDBC连接不到mysql数据库
今天在linux下部署一个 JavaEE项目的时候总是连接不到Mysql数据库,检查之后发现连接池的配置确定是对的,进入linux服务器之后以mysql -uname -ppassword连接总是报A ...
- Linux下程序下载
每个开发板/PC机都有硬盘(ROM,read only memory,只读存储器)和运行内存(RAM,random access memory,随机存取存储器).其中Nand/Nor flash相当于 ...
- linux下程序启动后后台运行实现
关于linux下的程序运行很简单,将源码编译成二进制(假设为proram)文件后直接在命令行运行即可,root#./program如果需要后台运行,即不占用当前终端,这在嵌入式linux显得十分有必要 ...
- Linux下程序包管理工具RPM
实验环境: CentOS release 6.6 (Final) 一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...
随机推荐
- unix c 02
环境变量 - 存储在内存中的信息,格式是映射,作用就是 帮助系统 进行一些工作,一般是 查找某个东西. 预处理指令:#warning #error #pragma 使用程序直接调用库文件的函数(动态编 ...
- Poj2946-The Warehouse(bfs+哈希)
题目我就不粘贴了... 题意:给出地图,最大8*8,出口用'E'表示,空地用'.'表示,数字表示此处有多少个箱子,主人公的起点应该是在有箱子的地方,他可以朝四个方向移动,但是只有两种方式 一种是他移动 ...
- poj3299
...
- 【转】多文件目录下makefile文件递归执行编译所有c文件
首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的. 意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文 ...
- VIm变成sublime (转)
sublime在ubuntu下始终支持不是很好, 特别是对中文输入的支持,还有一些插件在ubuntu下也不能用. 在ubuntu下还是用vim吧. 我们一起把vim变成sublime. 只需要三步 ...
- pyqt动态创建一系列组件并绑定信号和槽(网友提供学习)
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #如上图要求:创建指定多个复选框,一种是通过QT设计器Designe ...
- jquery.validate详解一
jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...
- PHP冒泡排序,选择排序,插入排序
1 冒泡排序是两个元素相互比较,找到最小值,然后冒泡到最后,代码如下:
- 自制获取data-自定义属性
jQuery.fn.dataset = function(attr, val) { // 获取数据集 if (arguments.length == 0) { var dataset = {}; jQ ...
- Android----------eclipse常用快捷键
类级操作:--------------------一个去包,一个导包------------------------------------ Ctrl+shift+O (不是零) 清除没用引用 ctr ...