![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
崩溃无响应
崩溃无响应
闻缺陷则喜何志丹
本人拙作《喜缺全书算法册》欢迎指教,可在CSDN下载https://download.csdn.net/download/he_zhidan/88368465
展开
-
利用Windows自带的功能当程序崩溃时产生崩溃转储文件(dmp)
何志丹以管理员身份 运行 :OpenDump.bat 其本质是写注册表。运行后: 任何程序崩溃都会在C:\CrashDump 产生dmp文件(比较大,约50到200M)。至少在Win7、Win10的电脑,Win10的平板上运行正确。OpenDump.bat@echo offecho 正在启用Dump...reg add "HKEY_LOCAL_M原创 2016-12-08 10:35:37 · 9266 阅读 · 0 评论 -
写了一个小组件获取当前显卡名称和显存
写了一个小组件获取当前显卡名称和显存测试程序在多台机器上没问题。集成到主程序崩溃,原因如下:此组件用到了opengl32.lib, 主程序用到了opengl.lib,两者不一致。组件也用主程序的opengl.lib,而不时opengl32.lib,就好了。原创 2016-06-24 11:03:04 · 652 阅读 · 0 评论 -
利用WinDbg分析C#程序产生的转储文件
何志丹启动对应版本(X86,X64)的WinDbg,主菜单“File->Open Crash dump”打开崩溃转储文件。假定崩溃的程序是Eholly。依次执行以下4命令。ld Ehollysxe ld:clrjit.loadby sos clr!dumpstack 各命令的作用:第一行: 加载Eholly.pdb第二行第三行: 加载sos,否则解析不了托管原创 2016-12-08 14:57:22 · 1647 阅读 · 0 评论 -
VS调试C#程序产生的dump
将二进制文件(exe、dll)、符号文件(pdb)、转储文件(dmp)放在同一个目录。如果可能的话,源码也要备份。有源码可以看到源文件的具体行,没源文件,只能定位到函数。二进制文件和符号文件必须备份,事后生成的没用,哪怕源码没改过。启动VS2013,以打开文件的方式打开转储文件, 点击右上的“混合调试” 附:1,此方式和调试C++程序产生的崩溃文件十分类似。2,昨天有个原创 2016-12-08 14:52:39 · 3486 阅读 · 0 评论 -
利用任务管理器 转储文件创建转储文件
何志丹在任务管理器中选择此程序,右键菜单中选择“创建转储文件”,转储文件会放在临时目录(%temp%)原创 2016-12-08 11:35:35 · 10946 阅读 · 0 评论 -
利用map和cod文件定位崩溃位置的例子和习题
例子和习题下载http://download.csdn.net/detail/he_zhidan/9656738原创 2016-10-18 14:12:35 · 347 阅读 · 0 评论 -
VC6和VC8(VS2005)生成map和cod文件
修改“汇编输出”想生成cod文件原创 2016-10-18 14:24:26 · 905 阅读 · 0 评论 -
VS2005利用pdb加源码定位崩溃所在代码行
exe、dll pdb和 dump 放在同一目录。VS2005打开解决方案(项目)的方式打开dump文件,之后F5调试,会直接定位到崩溃处。利用调用堆栈可以看到函数调用关系。一般情况上会找不到源码,从snv下载对应版本的此文件(本例是dll1\a0.cpp) “查找源”对话框点了“取消”,如何重新关联源文件?1,在解决方案的属性中,清空“不查找这些源文件”2原创 2016-10-18 16:32:47 · 1139 阅读 · 0 评论 -
一个非常简单的函数为什么会崩溃
软件崩溃, 利用dump和 map+cod两种方式都定位到同一个简单的函数bool CXX::IsXX(){return m_bXX;}m_bXX是一个bool变量。最后分析,其原因是:this指针非法。原创 2016-10-19 11:33:22 · 475 阅读 · 0 评论 -
利用dump文件反向定位崩溃位置的体会
利用VS2005 调试(F5) dump的体会:1,int long 等看的到,char*看不到. 短std::string看的到,长std::string看不到。2,pdb必须和dll一致,重新生成的不行。原创 2016-10-29 11:44:26 · 896 阅读 · 0 评论 -
启动(程序还没执行生成dump文件的代码)就崩溃的处理流程
上次崩溃,让大家手忙脚乱。所以列了一个启动(程序还没执行生成dump文件的代码)就崩溃的处理流程。1,用我写的opendll.exe加载所有dll。看是否能成功。此工具可以发现以下三种情况的崩溃:a, 全局变量的构造函数崩溃。b,dllmain中崩溃。c,Runtime Error。2,检查图像引擎是否兼容,如果有专门的检测工具最好。否则用dx和opengl的检查工具。原创 2016-11-04 15:12:51 · 1222 阅读 · 0 评论 -
工具(bat)就是比手工好
win10 平板,程序崩溃(程序生产dmp的代码暂未增加)手工配置 生产dmp(崩溃转储文件)未果,用小陆给我的bat,一下就设置成功。比较发现: 手工配置时,:用了中文的。bat也比手工快。原创 2016-11-22 11:28:56 · 456 阅读 · 0 评论 -
VS2013、VS2005都是MD,跨dll使用stl的string崩溃问题
VS2013和VS2015的工程选项都设置成MD。VS2005编一个dll,有一个类CTest,有一个私有的std::string类型的成员变量。VS2013的exe 中CTest test 没有使用test。崩溃,原因:堆栈溢出。经查:VS2013中, sizeof(std::string) 24VS2005中,sizeof(std::string) 28故原因是:原创 2016-11-23 17:31:01 · 1308 阅读 · 0 评论 -
boundcheck6在win7下用不了
---------------------------test.exe - 应用程序错误---------------------------应用程序无法正常启动(0xc0000005)。请单击“确定”关闭应用程序。 ---------------------------确定 --------------------------- 可能版本太老,不支持Win7,原创 2016-06-25 10:44:37 · 445 阅读 · 0 评论