摘要: 经常碰到本来运行很正常的程序,忽然弹出错误对话框,“ "0X****"指令引用的"0X******"内存。该内存不能为"read"或"written"”。接着程序就崩溃退出。这样的错误是程序存在BUG引起堆栈被破坏导致的。不要小看这样的问题,这种导致堆栈破坏的BUG因为不知道下一次什么时候就会出现,具有很强的隐蔽性。所以调试起来也很麻烦。现在介绍一个调试办法:使用GFlags.exe调试工具设置对进程的内存分配进行监控;一旦内存使用违例,程序会在第一时间崩溃报错,而不是在清理违例内存现场时才会报错。这样调试时就能立 阅读全文
posted @ 2012-04-13 14:03 特米尼德 阅读(2956) 评论(1) 推荐(0) 编辑
摘要: 一般我们抓取的dump文件后堆栈大都是这样的:0:028> kb*** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong.027acff8 7c802542 00000c34 ffffffff 00000000 ntdll!KiFastSystemCa 阅读全文
posted @ 2012-04-13 12:46 特米尼德 阅读(9906) 评论(0) 推荐(1) 编辑