原文:http://blog.csdn.net/wangyangtao/article/details/5357409
由于在release下无法及时定位崩溃的位置,所以建议相关人员修改工程配置,以便导出dump文件来定位release版本。
下面以VS2005为例,介绍修改过程:
如果是lib修改4处地方:
1. 工程 à properties à C/C++ àGeneral à Debug Information Format 选择 “Program Database for Edit & Continue (/ZI)”可使release下可调式
2. 工程 à properties à C/C++ àOptimization àOptimization 选择 “Disabled (/Od)”
3. 工程 à properties à C/C++ àOptimization àWhole Program Optimization 选择 “No”(1,2,3与生成DUMP文件有关)
4. 工程 à properties à C/C++ àOutput Files àAssembler Output 选择 “Assembly, Machine Code and Source (/FAcs)”此处生成cod文件(包含汇编的所有code)
如果是dll除了修改上面4处,还要修改Linker处
5. 工程 à properties à Linker àDebugging àGenerate Map File 选择 “Yes (/MAP)”此处生成map文件(所有函数的入口内存地址 当崩溃时会有崩溃地址可以据此查询)
设置完之后编译即可。(现今一般调试有两种组合:1 cod文件+map文件 2 dump文件+windbg分析)
为了及时获取dump文件,程序在打包出去使用时,需要在使用的机器上运行系统自带的Mr Watson作为默认调试程序,步骤简单,如下:
1. 在运行中输入命令:“drwtsn32.exe -i”,结果如下:
2.再在运行中输入“drwtsn32.exe ”,做一些配置,如下图: 日志文件路径为所要放置dump文件的文件夹路径,故障转储就是该目录下的dmup文件路径。选择指令和错误数量可以写多点,比如50。
故障转储类型选择“完整”。选项中选择第1,2,3,6项即可。配置结束后,运行程序,当程序崩溃后会在所设路径下生成dump文件,我们可以从用户处拷回dump文件作分析。
由于默认release下不生成pdb文件,所以需要自己添加:
工程 à properties à Linker àDebugging àGenerate Program Database File 填入 “$(TargetDir)$(TargetName).pdb”
相关推荐
本示例代码涉及的是如何在Release版本中处理崩溃,并使用Visual Studio(VS2017)进行调试,通过dump文件来定位代码出错的行数。这是一项关键技能,因为Release版本通常用于最终用户,而且调试信息较少,所以当出现...
本教程将详细介绍如何配置Windows环境来生成dump文件,以及如何对dump文件进行分析,从而定位并解决问题。 首先,配置生成dump文件的环境主要包括以下几个步骤: 1. 安装Debugging Tools for Windows:这是微软...
在dump 文件生成后,我们可以使用 MAP 文件来定位崩溃的地址。MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法。我们可以使用 VC 编译器来生成 MAP 文件。在 VC 中,我们可以按下 Alt+F7,打开...
5. **结合Map文件**:在某些情况下,如果CrashFinder无法准确地定位到源代码,可以借助map文件中的地址信息辅助分析。通过对比dump文件中的地址和map文件中的地址,可以确定崩溃发生的具体位置。 6. **分析和修复**...
当应用程序崩溃或出现未预期的行为时,dump文件可以保存程序运行时的状态,包括内存分配、线程信息、堆栈跟踪等,这对于定位问题原因非常有帮助。本篇文章将详细介绍如何在Qt与VS编译器下生成dump文件,并探讨其在...
使用Wireshark导出RTPdump文件是网络分析和故障排除过程中一个非常有用的技术,特别是在处理VoIP(Voice over IP)和音频/视频流通信时。RTP(Real-time Transport Protocol)是互联网上用于实时数据传输的一套标准...
### 如何在VS2010中配置程序以在崩溃时自动创建DUMP文件 本文档将详细介绍如何在Visual Studio 2010 (VS2010)中配置一个项目,使其能够在程序崩溃时自动生成DUMP文件,并提供一些基本的DUMP文件分析方法。 #### 一...
背景:很多情况下程序崩溃我们只能看到程序抛出来...如果将来遇到异常无法调试时就可以考虑将目标机器上异常现场内存导出到Dump文件中,然后通过Dump文件操作达到分析处理异常的目的,具体关于Dump的操作请参看如下文章...
总的来说,这个代码实现了一个自定义的异常处理器,它能够在程序崩溃时生成有用的dump文件,帮助开发者定位和修复问题。通过合理地配置和使用,可以极大地提升故障排查的效率。同时,通过控制dump文件的数量,可以...
"Windows系统下的Qt处理崩溃异常的Dump库,生成Dump文件" 这个标题涉及到的是在Windows操作系统中使用Qt框架进行程序开发时,如何处理程序崩溃异常并生成内存转储(Dump)文件的技术。Dump文件是程序运行时内存状态...
dump文件包含了程序崩溃时的内存快照,包括堆栈信息、进程和线程状态、全局变量等,可以帮助开发者分析问题的原因。在C++环境中,我们可以使用MiniDumpWriteDump函数来实现这个功能。现在,我们来详细讲解如何在C++ ...
"自动获取程序崩溃的dump文件类"是指一种专门设计的机制或工具,它能够在程序异常终止时自动创建dump文件,这样开发者就可以在不依赖用户反馈的情况下获取到崩溃信息,从而更快地定位并解决问题。 GetDump.cpp 和 ...
Dump文件包含了程序崩溃时刻的内存状态、线程信息、堆栈跟踪等关键数据,能帮助开发者准确地定位问题所在。下面将详细介绍如何在Windows C++环境中生成dump文件,并探讨其在定位代码内存错误中的应用。 首先,生成...
4. **导出为txt**:要将分析结果保存为txt文件,可以在命令行模式下输入`.dump /ma filename.txt`命令。这会将当前的内存转储信息导出为一个名为"filename.txt"的文本文件,其中"/ma"参数表示导出所有内存和模块信息...
Coredump文件包含了程序崩溃时内存中的关键信息,如进程的内存映射、全局变量、堆栈信息等,使得开发者能够定位到问题的具体位置,进而修复错误。本篇将详细介绍如何在C++代码中实现Windows系统的Coredump文件生成。...
Dump文件可以记录程序崩溃时的内存状态,包括堆栈信息、线程状态、内存分配等,帮助开发者定位问题所在。 "C++ 生成Dump文件"是一个关键的技术点,尤其在企业级应用中,确保软件稳定性和可维护性至关重要。以下将...
本文将深入探讨如何利用dump文件和map文件来查找并解决程序崩溃问题。 首先,我们需要了解dump文件的基本结构。Dump文件通常由调试器生成,如Visual Studio的调试器,它包含进程的内存映像、堆栈跟踪、模块信息等。...
- **导出数据**:通常使用`mysqldump`(MySQL)、`pg_dump`(PostgreSQL)或`expdp`(Oracle)等工具将数据库结构和/或数据转换为文本文件,这个过程也称为“dump”。 - **导入数据**:使用相应的命令(如`mysql`...
- **远程调试**: 特别是在无法直接访问远程机器的情况下,Dump文件成为了调试程序的有效手段。 - **优化性能**: 除了处理崩溃问题外,Dump文件还可以用来分析程序性能瓶颈,帮助优化程序性能。 #### 三、Dump文件的...
coredump 文件的生成与解析 coredump 文件是 Linux 操作系统中的一个重要概念,它记录了程序崩溃时的...通过对 coredump 文件的分析,可以了解程序崩溃的原因和函数调用路径,从而帮助开发者快速地定位和解决问题。