困扰好久的问题。
有几种方法可以定位崩溃,第一种是通过崩溃地址和.cod文件,来查找。
还有一种是生成.dmp文件,来查找。但是STL崩溃直接弹出windows的窗口的。
setunhandleexception 无法捕捉到?你们是怎么弄的?STL使用是方便,但是我觉得这个新手用的话,会把程序搞的啥时候宕掉都不知道。
有几种方法可以定位崩溃,第一种是通过崩溃地址和.cod文件,来查找。
还有一种是生成.dmp文件,来查找。但是STL崩溃直接弹出windows的窗口的。
setunhandleexception 无法捕捉到?你们是怎么弄的?STL使用是方便,但是我觉得这个新手用的话,会把程序搞的啥时候宕掉都不知道。
解决方案 »
- 内存泄漏
- Win2K下屏蔽Ctrl+Alt+Del的响应(急及)
- 谁给介绍一个socket的API封装类,做得好用点的?谢谢大家!
- ADO中如何返回上次DML(update,delete,insert)语句影响的记录行数
- 请问什么是线程的用户模式和内核模式?
- 请教:如何得到文件地址?
- 做一道题考虑一下,哈哈!
- vc中用datagrid和ado控件的问题
- 谁知道网易/www.kele8.com的台球游戏在线程序是用什么做的?
- 关于OnCtlColor()的问题
- 将C++Builder中"(double *)list->Items[list->Count-1]"改到VC下是什么?
- 当下,为什么不选择WPF开发界面?虽然很多贴还是想请教下。
vecInt[0] = 1;it = vecint.begin();
vecint.erase(it);
vecint.erase(it);这样就会有一个异常。但是抓不到?Why?
ChildEBP RetAddr
0012fb9c 75792467 ntdll!ZwTerminateProcess
0012fbac 6e15cc4e KERNELBASE!TerminateProcess+0x2c
0012fee8 6e15ccd5 MSVCR90!_invoke_watson+0x11b [f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c @ 234]
0012ff00 0040194c MSVCR90!_invalid_parameter_noinfo+0xc [f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c @ 125]
0012ff0c 00401b90 API_test!std::vector<int,std::allocator<int> >::erase+0x4c [c:\program files\microsoft visual studio 9.0\vc\include\vector @ 1022]
0012ff44 00401df1 API_test!main+0x120 [d:\projects\vc projects(backup)\home\try\api_test\api_test.cpp @ 1356]
0012ff88 77561194 API_test!__tmainCRTStartup+0x10f [f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 586]
0012ff94 7741b429 kernel32!BaseThreadInitThunk+0xe
0012ffd4 7741b3fc ntdll!__RtlUserThreadStart+0x70
0012ffec 00000000 ntdll!_RtlUserThreadStart+0x1b
那个代码应该也是抓不到的。这个有办法吗?TO:ysjyniiq
我知道在调试的时候能看到调用堆栈的。我需要的是Release版本下。在用户使用的时候出现异常。我能够得到反馈
ExceptionRecord.ExceptionCode = STATUS_INVALID_CRUNTIME_PARAMETER;
ExceptionRecord.ExceptionFlags = EXCEPTION_NONCONTINUABLE;
ExceptionRecord.ExceptionAddress = _ReturnAddress();
wasDebuggerPresent = IsDebuggerPresent(); /* Make sure any filter already in place is deleted. */
SetUnhandledExceptionFilter(NULL); ret = UnhandledExceptionFilter(&ExceptionPointers); // if no handler found and no debugger previously attached
// the execution must stop into the debugger hook.
if (ret == EXCEPTION_CONTINUE_SEARCH && !wasDebuggerPresent) {
_CRT_DEBUGGER_HOOK(_CRT_DEBUGGER_INVALIDPARAMETER);
} TerminateProcess(GetCurrentProcess(), STATUS_INVALID_CRUNTIME_PARAMETER);