coredump分析】的更多相关文章

作为工作几年的老程序猿,肯定会遇到coredump,log severity设置的比较高,导致可用的log无法分析问题所在. 更悲剧的是,这个问题不好复现!所以现在你手头唯一的线索就是这个程序的尸体:coredump.你不得不通过它,来寻找问题根源. 通过上几篇文章,我们知道了函数参数是如何传递的,和函数调用时栈是如何变化的:当然了还有AT&T的汇编基础,这些,已经可以使我们具备了一定的调试基础.其实,很多调试还是需要经验+感觉的.当然说这句话可能会被打.但是你不得不承认,随着调试的增多,你的很…
首先通过命令 gdb freeswitch core.60954进入gdb. 这里freeswitch 是产生coredump的可执行应用,core.60954是应用产生的coredump文件. 然后执行命令 bt可以看到运行出错的堆栈信息 (gdb) bt#0 0x00007fd372e3344d in lua_remove () from /lib64/liblua-5.1.so#1 0x00007fd3730635ef in docall (L=0x7fd39802dcc0, narg=<…
flash player版本号:14.0.0.125 产品名称:Adobe® Flash® Player Installer/Uninstaller 系统:windows xp sp3 调试器:windbg 反汇编器:IDA 应用程序:FlashUtil32_14_0_0_125_Plugin.exe coredump信息: eax=00000000 ebx=01ed75f0 ecx=00000000 edx=00000000 esi=01ed75f0 edi=00000000 eip=0040…
from:http://www.cnblogs.com/doctorqbw/archive/2011/12/21/2295962.html   千兵卫博士   coredump简介与coredump原因总结 什么是coredump? 通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等.可以理解为把程序工作的当前状态存储成一个文件.许多程序和操作系统出错时会自动生成一个core文件. 如何使用coredump? coredump可以用在很多场合,使用Linux,或…
阴沟翻船,马失前蹄,说明凡事皆有可能.自然,程序设计的再好,也会有crash的时候.开发期还还说,正式交付的系统crash自然更是难以承受的.无论何时,死一次就够了,得有方法查个水落石出. 几年前哥去广州的一家民企呆过些日子.刚到那,就碰上系统毫无线索的crash.咋办?哥想静下心来,花点时间做个工具去定位,但无奈硬件出生的领导天天赶着大家守在机房.唉,无知啊,天天守在机房,面对crash,哥想到的只有我儿子常常念的诗--来如春梦不多时,去如朝霞无觅处.嗯,crash,哥只能数数又crash了几…
[转]coredump简介与coredump原因总结 http://blog.sina.com.cn/s/blog_54f82cc201013srb.html 什么是coredump? 通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等.可以理解为把程序工作的当前状态存储成一个文件.许多程序和操作系统出错时会自动生成一个core文件. 如何使用coredump? coredump可以用在很多场合,使用Linux,或者solaris的人可能都有过这种经历,系统在跑…
什么是coredump 通常情况下coredmp包括了程序执行时的内存,寄存器状态,堆栈指针,内存管理信息等.能够理解为把程序工作的当前状态存储成一个文件.很多程序和操作系统出错时会自己主动生成一个core文件. 怎样使用coredump coredump能够用在非常多场合,使用Linux,或者solaris的人可能都有过这样的经历,系统在跑一些压力測试或者系统负载一大的话,系统就hang住了或者干脆system panic.这时唯一能帮助你分析和解决这个问题的就是coredump了. 如今非常…
docker使用问题总结 解决国内不能访问gcr.io的问题 国内可以通过https://dashboard.daocloud.io来下载. 比如?gcr.io/google_containers/pause, 可以 dao pull google/pause, 然后 docker tag google/pause ?gcr.io/google_containers/pause?docker tag google/pause gcr.io/google_containers/pause:0.8.…
上一篇文章<Linux Debugging:使用反汇编理解C++程序函数调用栈>没想到能得到那么多人的喜爱,因为那篇文章是以32位的C++普通函数(非类成员函数)为例子写的,因此只是一个特殊的例子.本文将函数调用时的参数传递方法进行一下总结.总结将为C++普通函数.类成员函数:32位和64位进行总结. 建议还是读一下Linux Debugging:使用反汇编理解C++程序函数调用栈,这样本文的结论将非常容易理解,将非常好的为CoreDump分析开一个好头.而且,它也是32位C++ 普通函数的调…
1. docker报[Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run failed]错 解决办法: # systemctl stop docker.service # thin_check /var/lib/docker/devicemapper/devicemapper/metadata If there were no errors then proceed with:…
阿里云于大概两月前商业化了一款APM产品 ARMS ,正式填补了 APM 上的云上监控的空白.那么作为阿里云官方 APM 工具,ARMS 和其他传统厂商的 APM 服务相比有什么特点呢? 通过和国内其他 APM 类产品对比,结合其自身各类功能,一个显著的特点是能非常明显地帮助用户降低云上的应用监控使用成本,从而间接提高用户在阿里云上的体验和粘性. 以下从五个方面来为大家详细解说. 随需而动的按量付费定价策略 传统的APM厂商基本上是按照规模的峰值数来一次性收取一年的费用.相比之下,ARMS 无论…
工作2年,干了一年ARM平台嵌入式,一年后台,总结下这两年开发中调试的经验.我把调试手段分成2种:打印日志和用工具分析.因为平时主要开发在Linux平台,就以GDB为例 一.打印日志 1. 合理设置日志级别 一般的日志库都会有日志级别,合理使用能避免因线上环境的日志打印过大而导致的磁盘占用过高,搜索日志耗时太长,因为日志大小超过设置值,导致一天打印日志数过多等问题.线上环境的日志一般需要以下级别: Info,表示业务走到关键点时候的变量信息,队列消费数目,等待处理数目这些用于定位业务是否正常,分…
什么是段错误 下面是来自 Answers.com 的定义: A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of computer software. In short, a segmentation fault occurs when a program attempts to access a memor…
你好,我是雨乐! 在上篇文章中,我们分析了线上coredump产生的原因,其中用到了coredump分析工具gdb,这几天一直有读者在问,能不能写一篇关于gdb调试方面的文章,今天借助此文,分享一些工作中的调试经验,希望能够帮到大家. 写在前面 在我的工作经历中,前几年在Windows上进行开发,使用Visual Studio进行调试,简直是利器,各种断点等用鼠标点点点就能设置:大概从12年开始转Linux开发了,所以调试都是基于GDB的.本来这篇文章也想写写Windows下调试相关,奈何好多年…
最近有同事在搞编译环境迁移,碰上一个问题让我帮他看一下.    他建了一个新目录,然后把现在的代码拷过去,编译的时候发现有一个文件编译不了一执行就出现core,不知道啥情况.    我进到他的编译环境,执行make,果然出现了core文件.    使用file命令分析,发现是proc程序的core.于是使用gdb,想进去看看在哪里core了.    但打开后使用where命令,发现输出的函数名称全是问号.根据经验,这种一般是由于内存越界导致函数堆栈信息被破坏.    于是想试试在gdb里面执行程…
关键词:coredump.core_pattern.coredump_filter等等. 应用程序在运行过程中由于各种异常或者bug导致退出,在满足一定条件下产生一个core文件. 通常core文件包含了程序运行时内存.寄存器状态.堆栈指针.内存管理信息以及函数调用堆栈信息. core就是程序当前工作转改存储生成的一个文件,通过工具分析这个文件,可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题点并解决. 1. 配置coredump 如果需要使用需要通过ulimit进行设置,可以通过ul…
转自:http://blog.csdn.net/guowenyan001/article/details/12975221 一.分析Core文件 1.1 找到core文件目录,启动mycrash:mycrash 1.2 查看崩溃的堆栈信息:bt 1.3 反汇编崩溃点的代码,10行:dis -l extract_http_info+73 10 二.分析源文件hinfo.ko 2.1 查看源文件信息:objdump -S hinfo.ko > tmp 2.2 从tmp文件中查找1.3中的内容movb…
linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal Signal Value Action Comment ────────────────────────────────────────────────────────────────────── SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process SIGINT…
COREDUMP调试的使用 一,什么是coredump 跑程序的时候经常碰到SIGNAL 或者 call trace的问题,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件. 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态 存储生成第一个文件,许多的程序出错…
上次的Hello world算是入门了,现在学习一些相关工具的使用 编译自动化 写好程序,首先要编译,就用gcc就好了,基本用法如下 gcc helloworld.c -o helloworld.o helloworld.c是源码,helloworld.o是编译后的可执行文件,运行的话就用 ./helloworld.o就可以了. 但是如果代码写的多了,每次改动完都手动用gcc编译太麻烦了,所以要用Makefile来 自动化这项工作,在当前目录下创建Makefile文件,大概如下 hellowor…
一,什么是coredump 跑程序的时候经常碰到SIGNAL 或者 call trace的问题,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件. 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态 存储生成第一个文件,许多的程序出错的时候都会产生一个core文…
Nginx进程启动分析 worker子进程的执行循环的函数是ngx_worker_process_cycle (src/os/unix/ngx_process_cycle.c). 其中,捕获事件.分发事件的函数是ngx_process_events_and_timers(cycle); static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data) { ngx_int_t worker = (intptr_t) data;…
我写了一个必然会崩溃的程序,名字为 test :#include "stdlib.h"#include "unistd.h" int main(){ char *pTest = NULL;        memcpy(pTest , "123", 111);         return 0;} 编译后,直接执行,会在当前目录产生coredump. 然后我又写了一个shell,名字为 shelltest.sh :#!/bin/bash ulimi…
如不做特殊说明,本博客所使用的 nginx 源码版本是 1.0.14,[] 中是代码所在的文件! 这一节我们分析ngx_worker_process_cycle(),该函数代码比较少,因为它通过调用函数实现功能的,先贴出代码: [os/unix/ngx_process_cycle.c /* worker_process 所执行的程序,nginx 核心所在 */ static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)…
一,什么是coredump 我们常常听到大家说到程序core掉了,须要定位解决,这里说的大部分是指相应程序因为各种异常或者bug导致在执行过程中异常退出或者中止,而且在满足一定条件下(这里为什么说须要满足一定的条件呢?以下会分析)会产生一个叫做core的文件. 通常情况下,core文件会包括了程序执行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们能够理解为是程序工作当前状态存储生成第一个文件,很多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们能…
linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id=4923447 1. 分析coredump打印信息 2. 确定发生错误的函数 看发生错误的地方的函数和pc PC is at segment_test_open+0x14/0x1c [segdrv] 看pc值: pc : [<7f000014>]    lr : [<800d958c>…
一.静态分析工具 cppcheck cppcheck主要用于对C/C++源代码进行分析检查的一个开源工具,可以用来检测未使用的变量.越界访问.内存泄漏等问题. 使用方法 cppcheck --enable=all NAME.cpp gcov gcov是伴随gcc发布的一个代码覆盖率检查工具,可以用来检查代码中各个语句的执行次数,查看代码执行逻辑,方便后期对代码的优化. 使用方法 在gcc/g++的编译选项中添加两个选项 -fprofile-arcs -ftest-coverage 运行可执行程序…
一.相关数据结构及其位置(大致浏览即可,介绍流程时再来仔细看) 1.1 进程描述符struct task_struct所在目录:include\linux\sched.h 关注task_struct中如下字段: struct sigpending pending:存放着实时信号,位于include\linux\signal.h,该结构有如下字段 struct sigpending { struct list_head list; \\指针 sigset_t signal; \\位图 }; sig…
1.事故背景 上周三凌晨,我负责的某个模块在多台机器上连续发生coredump,幸好发生在业务低峰期,而且该模块提供的功能也不是核心流程功能,所以对线上业务影响比较小.发生coredump后,运维收到报警后立马拉起了服务,服务宕机时间为3分钟左右. 2.事故分析 第二天立即组织了事故分析小组,对事故发生原因进行了排查,coredump的时候JVM保存了coredump文件,运维帮忙转换成了问题分析结果文件,如下 ## There is insufficient memory for the Ja…
目录 Apache coredump 问题发现与解决记录 背景 发现问题 解决问题 方法 1 方法 2 总结 Linux 程序编译链接动态库版本问题 ldd 命令 动态库的编译和 soname 线上 Apache 坑 浏览器 Apache coredump 问题发现与解决记录 背景 组内的开发机原来是 Nginx + Tomcat 环境拓扑,但线上是 Apache + Tomcat,为了与线上环境保持一致,要求将开发机上的 Nginx 替换为 Apache.目前开发机上基于域名的虚拟机有dk.q…