c/c++语言里MiniDump是一个重要的调试手段,他们没有C#/java这样语言有很多异常输出信息(JVM异常导出bug日志功能,通常在jdk目录,文件格式hs_err_%pid%.log,pid是进程id)。我们通常在项目中都会把可预见性进行异常处理。常见的处理方法如下try{ ...catch(Exception ex){ HandleExeption(ex);}项目部署到客户机中
原创 2022-10-06 01:12:52
837阅读
学习
转载 2013-04-03 10:44:00
402阅读
2评论
简介在过去几年里,崩溃转储(crash dump)成为了调试工作的一个重要部分。如果软件在客户现场或者测试实验室发生故障,最有价值的解决方式是能够创建一个故障瞬间的应用程序状态镜像,然后可以在开发者的机器上通过调试器进行分析。第一代的crash dump通常被称为“全用户转储(full user dump)”,它包含了进程的虚拟内存的全部内容。毫无疑问,这样的dump对于事后调试非常有价值。但是,
转载 2014-03-31 15:57:00
640阅读
已经不记得从哪里转载,版权归原作者所有,导出到内存快照放到VS等工具可以追踪故障原因。MiniDumper.cssealed class MiniDumper { [Flags] public enum Typ : uint { // From dbghelp.h: MiniDumpNormal = 0x0
转载 2022-08-19 09:14:10
268阅读
PDB (Program Data Base) 即程序的基本数据,是 VS 编译链接时生成的文件,每个程序集(EXE 或 DLL)都有一个与之对应的 PDB 文件。DPB 文件主要存储了 VS 调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、对应的行号等等。因为存储的是调试信息,所以一般情况下 PDB 文件是在 Debug 模式下才会生成。有了这个文件,我们才能对程序进行 断点调试 ,才能一步步执行程序。
推荐 原创 2022-10-13 06:32:06
1986阅读
并不是所有的bug都可以在发布前找到,也就是说并不是所有的抛出异常的bug都可以在发布前找到。幸运的是,微软在
原创 2022-12-13 20:24:14
1813阅读
许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.   通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如 C:/WINDOWS/Minidump/Mini082106-01.dmp. 所以对该文件的分析就能很快查找
转载 精选 2012-09-06 16:23:50
6441阅读
简介 在过去的几年中,崩溃转储成为我们调试活动的一个重要部分。当我们的软件在客户的机器出现故障时,创建应用程序状态的快照并使用在开发人员机器上运行的传统调试器对其进行分析的可能性是非常宝贵的。第一代崩溃转储(通常称为“完全用户转储”)捕获了整个进程虚拟内存的内容。尽管对于事后调试毫无疑问是有用的,但这样的转储常常变得如此巨大,以至于不可能或至少不方便将它们以电子方式传输给软件开发人员。此外,没有以
转载 2019-11-20 13:57:00
332阅读
2评论
在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想
原创 2022-11-10 14:22:10
597阅读
程序崩溃时自动记录minidumpc++类封装了一个C++类,当程序意外崩溃的时候可以生成d
转载 2023-06-18 16:09:13
151阅读
许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.  通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如 C:\WINDOWS\Minidump\Mini082106-01.dmp. 所以对该文件的分析就能很快查找到
转载 2023-11-04 16:39:47
148阅读
      在日常工作中,本地c++代码发生崩溃时,编译器都可以帮我们捕捉到并且定位到具体的代码,这是因为编译器接收到了操作系统发送过来的程序异常通知并进行了处理。但是在使用我们软件的用户环境上,没有编译器帮我们处理这个异常,操作系统会使用它的异常处理机制:弹出程序异常对话框。因此我们需要将崩溃时产生的堆栈信息生成dump文件,传送到我们的服务器上,通过Windbg工具或者vs编译器进行崩溃分析
转载 2021-02-06 14:10:00
869阅读
2评论
之所以在静态库中.cpp中的代码不起作用,是因为没有代码去调用crash_dumper_w32.cpp的代码,链接的时候就被编译器给丢掉了。上面的语句在匿名空间中定义了一个变量,这样,每一个包含它的.cpp文件就“被迫”创建了一个不可访问的bPlaceHolder变量,而该变量又必须使用CrashD
原创 2021-08-22 09:51:58
1966阅读
转载地址点击打开链接 1、生成dmp的程序 #include <dbghelp.h> #pragma comment(lib, "dbghelp.lib")//设置异常处理回调函数SetUnhandledExceptionFilter(UnhandledExceptionFilter);//异常处理
转载 2018-02-27 11:31:00
318阅读
2评论
Linux是一种开源的操作系统,具有很多的发行版本。红帽(Red Hat)是其中最知名的一种发行版本,也是全球最大的开源软件公司之一。本文将介绍一些与Linux C实例相关的内容,探讨如何利用Linux C语言实现一些常见的功能。 Linux C实例是指基于Linux操作系统使用C语言编写的示例程序。这些示例程序旨在帮助开发人员学习和理解C语言以及Linux操作系统的特性和功能。通过实际的例子,
原创 2024-01-31 19:31:28
33阅读
#include <string.h>#include <stdio.h>#include <stdlib.h>#define toConstStr(a,b) a#b   //a must "xxx", "" is needed.#define toUserDefine(a,b) a##bint functionA(int a,int b){ &nbs
原创 2021-09-27 17:21:33
120阅读
1,九九乘法表undefined reference to `sqrt'linux本身无math库 -lm,伪链接;
原创 2021-12-30 17:22:38
92阅读
就近匹配:应用1:就近匹配 几乎所有的编译器都具有检测括号是否匹配的能力如何实现编译器中的符号成对检测?#include int main() { int a[4][4]; int (*p)[4]; p = a[0]; return 0; 算法思路从第一个字符开始扫描当遇见普通字符时忽略,当遇见左...
目录 案例一:JQuery校验用户案例二: 实现百度搜索提示案例三:JQuery实现省市联动(XML传输数据方式)案例四:JQuery实现省市联动(Json传输数据方式)案例一:JQuery校验用户需求:注册用户时,对已存在用户进行提示JQuery:<!-- 导入JQuery的支持 --> <script type="text/javascript" src="js/j
转载 2023-07-04 10:38:18
98阅读
环境:ubuntu 20.041、先确保开启redis-serversudo apt-get install redis #安装reids redis-server #启动redis服务端 redis-cli #本地客户端测试连接2、安装hiredisgit clone https:/
转载 2023-05-29 15:09:59
52阅读
  • 1
  • 2
  • 3
  • 4
  • 5