怎么在崩溃的时候得到完整的栈信息
如何在崩溃的时候得到完整的栈信息
我用StackWalk函数在程序崩溃的时候得到栈信息,在debug版本下面还好,release版本下面只能得到一部分,请问怎么解决呢
debug版本看起来像这个样子
-MyExe.exe 0x0400015 + 0x0C
-MFC80d.dll 0x0700152 + 0x120
而release版本没有MFC80.dll这一行
另外kernel32.dll里面的函数调用也没有得到,我看迅雷,qq都能得到kernel32.dll里面的栈
谢谢
------解决方案--------------------
你需要用工具抓full dump
adplus之类的工具都可以
------解决方案--------------------
mini dump肯定不行,只有部分错误信息
------解决方案--------------------
帮顶一下,StackWalk能够获取DEBUG版本信息,这个没有任何疑义
但是Release版本应该也差不多了,是不是参数的问题呢
------解决方案--------------------
可能是编译Realse版本的时候添加的Debug Info,在VC里有设置的
------解决方案--------------------
关注!对错误处理这方面的知识太缺乏了。
------解决方案--------------------
利用MS的dbghelp.dll提供的DbgHelpCreateUserDump来生成dump文件就可以了
------解决方案--------------------
顶楼上的,一般都是用的dbghelp.dll
------解决方案--------------------
过来学习
------解决方案--------------------
学习了
------解决方案--------------------
很简单的,用WINDBG分析,只要是全DUMP,就好分析
------解决方案--------------------
MFC80d.dll这是调试版调用的MFC库。
Release版是不调用这个的,当然你看不到这个了
------解决方案--------------------
关注此贴
------解决方案--------------------
http://www.codeproject.com/KB/threads/StackWalker.aspx 看这个例子
------解决方案--------------------
学习了
------解决方案--------------------
学习了
------解决方案--------------------
在项目里生成PDB文件就好了
------解决方案--------------------
1. 生成map
2.用dump抓 crash文件
核对map 去查代码
------解决方案--------------------
看了楼主的帖子,我研究了一下这方面的东西。。
在blog上整理了网上的几篇文章。
blog.****.net/alicehyxx
------解决方案--------------------
别的不说了,贴代码。觉得好用就加分。
dumper.h
我用StackWalk函数在程序崩溃的时候得到栈信息,在debug版本下面还好,release版本下面只能得到一部分,请问怎么解决呢
debug版本看起来像这个样子
-MyExe.exe 0x0400015 + 0x0C
-MFC80d.dll 0x0700152 + 0x120
而release版本没有MFC80.dll这一行
另外kernel32.dll里面的函数调用也没有得到,我看迅雷,qq都能得到kernel32.dll里面的栈
谢谢
------解决方案--------------------
你需要用工具抓full dump
adplus之类的工具都可以
------解决方案--------------------
mini dump肯定不行,只有部分错误信息
------解决方案--------------------
帮顶一下,StackWalk能够获取DEBUG版本信息,这个没有任何疑义
但是Release版本应该也差不多了,是不是参数的问题呢
------解决方案--------------------
可能是编译Realse版本的时候添加的Debug Info,在VC里有设置的
------解决方案--------------------
关注!对错误处理这方面的知识太缺乏了。
------解决方案--------------------
利用MS的dbghelp.dll提供的DbgHelpCreateUserDump来生成dump文件就可以了
------解决方案--------------------
顶楼上的,一般都是用的dbghelp.dll
------解决方案--------------------
过来学习
------解决方案--------------------
学习了
------解决方案--------------------
很简单的,用WINDBG分析,只要是全DUMP,就好分析
------解决方案--------------------
MFC80d.dll这是调试版调用的MFC库。
Release版是不调用这个的,当然你看不到这个了
------解决方案--------------------
关注此贴
------解决方案--------------------
http://www.codeproject.com/KB/threads/StackWalker.aspx 看这个例子
------解决方案--------------------
学习了
------解决方案--------------------
学习了
------解决方案--------------------
在项目里生成PDB文件就好了
------解决方案--------------------
1. 生成map
2.用dump抓 crash文件
核对map 去查代码
------解决方案--------------------
看了楼主的帖子,我研究了一下这方面的东西。。
在blog上整理了网上的几篇文章。
blog.****.net/alicehyxx
------解决方案--------------------
别的不说了,贴代码。觉得好用就加分。
dumper.h
- C/C++ code
#ifndef __DUMPER_H__ #define __DUMPER_H__ #include <time.h> #include <string> #include <windows.h> #include <dbghelp.h> #pragma comment(lib,"dbghelp.lib") class CDumper { public: CDumper(void); ~CDumper(void); static int OnError(LPEXCEPTION_POINTERS pException); static std::string FormateDateTime(time_t t); static const char* GetRootPath(void); static void Test(void); }; #endif //__DUMPER_H__
------解决方案--------------------