windowsclient崩溃分析和调试】的更多相关文章

本文介绍windows上崩溃分析的一些手段,顺便提多进程调试.死锁等. 1.崩溃分析过程 1.1 确认错误码 不管是用windbg还是用vs.首先应该注意的是错误码,而90%以上的崩溃都是非法訪问. 在非法訪问时.能够看一下訪问的目标地址. 地址是0,或者离0非常近(0x00000008或0xfffffffc). 一般和空指针相关.假设是一个貌似正常的地址,通常是对象已析构后訪问其数据,或者堆破坏. 1.2确认崩溃相应的C++操作 什么是确认崩溃相应的C++操作: 比方非法訪问,通常得有个mov…
崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式. 1.异常处理 可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly.对一些我们不想他崩溃的地方,可以采取这种方式去处理.但要注意的是,通过这种处理,使用的第三方崩溃将捕捉不到异常信息,不会上报. @try { <#Code that can potentially throw an exception#> } @catch (NSException *exception) { &l…
TCPflow是一款功能强大的.基于命令行的免费开源工具,用于在Unix之类的系统(如Linux)上分析网络流量.它可捕获通过TCP连接接收或传输的数据,并存储在文件中供以后分析,采用的格式便于协议分析和调试. 它实际上是类似tcpdump的工具,因为它处理来自网络或存储文件的数据包.它同样支持tcpdump支持的功能强大的过滤表达式.唯一的区别是,tcpflow让所有TCP数据包井然有序,并在单独的文件(每路方向的数据流有一个文件)中组装每路数据流,供以后分析. 功能特性包括一个高级插件系统,…
core介绍 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成"核心转储").我们可以认为 core dump 是"内存快照",但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针.栈指针等).内存管理信息.其他处理器和操作系统状态和信息. core文件生成 core文件的生成开关和大小限制 使用ulimit -c命令可查…
崩溃的分析 最近修复了一些iOS项目的崩溃,想分析总结一下这些崩溃的原因,以及预防.崩溃的原因一般有下面几种: 内存访问错误(这个出现的比较多,原因多种多样) 非法指令的执行(超出权限范围内的指令) 非法的IO访问 系统调用参数出错 指令条用参数错误(除以0之类) 想分析用户崩溃,收集崩溃的日志非常重要,我们项目中用的是Twitter的Crashlytics,现在叫fabric, 能够收集到比较详细的崩溃信息:各线程的崩溃栈和设备的一些信息.有一个小问题就是没有收集到各个 寄存器里面的值(看是不…
尊重原创作者,转载请注明出处: http://blog.csdn.net/gemmem/article/details/13017999 此文承接我的另一篇文章:Android进程的内存管理分析 首先了解一下dalvik的Garbage Collection: 如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Roots),比方说thread stack中的变量,JNI中的全局变量,zygote中的对象(class loader加载)等,然后开始对heap进行遍历.到最后,…
原文地址:http://blog.163.com/net_worm/blog/static/127702419201002004518944/ 在我们前面的分析中,经常看到qWarning()和qDebug()之类的调用.今天深入的分析QT的调试跟踪系统. 我们先看QDebug.h中的宏定义: 1 #if !defined(QT_NO_DEBUG_STREAM) 2 Q_CORE_EXPORT_INLINE QDebug qDebug() { return QDebug(QtDebugMsg);…
http://www.cnblogs.com/LBSer/p/4417148.html 1 问题描述 某服务有两台机器,每隔几天会报警load高,一开始看监控发现gc时间抖动很大,以为是发生了fullgc引起卡顿而未加注意,之后登入线上机器查看日志发现是jvm崩溃导致了服务重启从而引发gc时间抖动.以某天为例,该服务分别在上午7点和上午10点发生jvm崩溃,如果同时发生崩溃将导致线上停服,后果不堪设想. 2 问题分析 崩溃日志显示jvm崩溃发生在在标记清除扫根路径时. 搜索此bug,发现是jvm…
本文主要分析内核中与调试相关的几个内核函数. 首先是NtCreateDebugObject函数,用于创建一个内核调试对象,分析程序可知,其实只是一层对ObCreateObject的封装,并初始化一些结构成员而已. 我后面会写一些与window对象管理方面的笔记,会分析到对象的创建过程. 来自WRK1.2 NTSTATUS NtCreateDebugObject ( OUT PHANDLE DebugObjectHandle, IN ACCESS_MASK DesiredAccess, IN PO…
  http://blog.csdn.net/gemmem/article/details/13017999 此文承接我的另一篇文章:Android进程的内存管理分析  首先了解一下dalvik的Garbage Collection: 如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Roots),比方说thread stack中的变量,JNI中的全局变量,zygote中的对象(class loader加载)等,然后开始对heap进行遍历.到最后,部分没有直接或者间接引用到…