随笔分类 - 程序崩溃解决办法
摘要:一 、Windbg介绍: Windbg是一款功能十分强大的调试工具,它设计了极其丰富的功能来支持各种调试任务,包括用户态调试、内核态调试、调试转储文件、远程调试等等。 二、具体使用 ● STEP 1:生成dump文件 #include "stdafx.h" #include"windows.h" #
阅读全文
摘要:一、错误如下: 这个错误是说在0x01F641A8处发生堆问题,下一句是说在堆buffer末尾内存中写入了数值。 二、错误原因 这个问题显然在动态分配、释放时内存才会发生的。在解决这个问题问题前首要要了解在new和delete时堆中的内存是怎么分配的,是什么内存结构? 引用《c++反汇编与逆向分析技
阅读全文
摘要:一、实验代码 1 #include <iostream> 2 #include <windows.h> 3 4 int main() 5 { 6 while (true) 7 { 8 int* arr = new int[1024]; 9 std::cout << arr << std::endl;
阅读全文
摘要:这个问题大家应该都清楚,是调用了vsprintf.c的里面的sprintf_s函数,目标内存太小导致程序崩溃了。 如果项目使用的地方不多,那每个地方仔细检测一下,应该能解决掉。 但是,我在项目中遇到的调用这个函数的地方上千行,没法一个一个去检测,所有我把这个函数全部由: _snprintf 这个函数
阅读全文
摘要:一 使用场景: 当可执行程序在现场跑崩溃时,线程不能调试,此时就得就要考虑让程序崩溃时产生dmp文件,然后拷回来调试,dmp里面记录出错时的记录。 二 如何产生dmp文件, 以下为示范代码(VS2013),代码开始时调用SetUnhandledExceptionFilter(&MyUnhandled
阅读全文
摘要:一、程序崩溃的定位 先给出一个例子,该代码有致命bug,运行时将使程序崩溃。在VC中输入以下代码: /////////////// 示例1 //////////////////// #include <stdio.h> #include <stdlib.h> struct Object { int
阅读全文