Windows os ??? ???? ??
- 2. ? ??? ??? ???
?? ??? ??? ? ? ??? ??? ???
????????!!!!!!!!!!!
??? ? ??????.?
- 3. ??? ?? ??? ???~
?? ??? ??? ? ? ??? ??? ???
???? ?? ?? ?? ??? ??
???? ?? ?? ?? ??? ?? ?
OS ??? Event? ?? ??
SEH(Structured Exception Handling)
API
???? ?? ?? ?? ?? ??? ??
MiniDumpWriteDump()
- 5. SEH ? ???
?????? Exception ? ?? ?? ?
OS ??? Message? ?? ??
SetUnhandledExceptionFilter() ???
?????? Exception ? ?? ?? ?
OS? ??? ?? Callback Function ????
- 6. ٱC𱹱-
Visual Studio 2008?? ??? ?? ????
Linker ??? ?? ???? ??? ?? ?? ???~
/SAFESEH:NO
- 7. ٱC𱹱-
System-Level-SEH ? ?? ????
?? ??? ??? Issue?? ?? ?
??? ??? ?? MS??? ???
??? ?? ??? ???
?? ??? ??? ??? ?? ??
??
??? Visual Stuido 6.0?? ???
? 2005??? SAFESEH?? ???
???? ???
- 8. Compiler-Level SEH
Compiler-Level-SEH?...
1. Visual Studio Compiler Keyword
__try, __finally, __except
2. ? Keyword? ???? ????
System-Level-SEH ? ??? ? ????.
???? C++ ?? ??(try, catch)??
?? ????
Microsoft Visual C++ ????? C++ ?????
Windows SEH(System-Level-SEH)???? ?? ?,
Visual C++????? try, catch ??? ???
????? Compiler-Level SEH ???? ??.
- 9. Compiler-Level SEH
???? C++ Exception Handling? ???? ?? ??? ?????.
__try??? try , __except??? catch ????? ?? ??? ???
?????? ????. C++ Exception Handling? ?????
Compiler-Level-SEH ????? ??? ??????...
- 14. Compiler-Level SEH
???? Compiler-Level SEH Mechanism? ???? SEH Callback ?
?? ??? ? ????.
?? __except( filterCallbackFunction(GetExceptionInformation() ) )
??? filterCallbackFunction() ??? SEH Callback ??? ????
?????.
?? ?? FS:[0]? Exception Handler ??? ???? System-Level SEH
? ??? ???? ????.
Compiler-Level-SEH ??? Visual C++ ?????? ???? ?????
?? ?? ?? 6.0??? __except_handler3??? 2008???
_except_handler4 ??? FS:[0]? ??? ?? ? ??? ??? ??
Callback ??? __except ??? ??? ??? ???.(?? ? ???
Callback??? ?? ?? Filter Function??? ??????.)
???. ???? ? ?? ??? ???? ?????.
- 15. ?? ???.
__except() ??? ??? Exception Filter ???
???? ???...
??? ????...
?? ?? ?? Process?? Exception ???? ? ?
Exception? Handling ?? ?? Filter ??? ??? Visual
C++ Compiler? ???? ??? SEH Callback ??(Visual
Studio 2008 ??? __except_handler3)?
SetUnhandledExceptionFilter () API? ??? ???
Filter ??? ?????.
- 16. ???? ? ??
Exception? ?? ?? ? ??? SEH????
?? ? ?? Callback ??? ??????.
??? ????.
??? ???? Compiler-Level-SEH? ???? ?? ?
? ? Callback?? Filter ??? ???? ???? __except()
??? ???? ?? ?? ?????.
??? ???? ??? ??... ??...
Exception? ???? ? ??? ??? Filter ???
SetUnhandledExceptionFilter () API ??? ??? ????
??? ??... ?????.
- 17. ??? ???? ??? ????
Dump? :
Exception ?? ? ?? ????? ??? ???
??? ??? ??
(Snapshot of the Application State of the exact moment of Failure).
??? ? ? ????...?
Symbol File ? Exception? ??? ???? ??? ??? pdb ??? ?
?? Exception ?? ?? ???? ?? Symbol ? Resolution ?? ? ?
????.
?? ??? ? ?? ??? ?? Exception ??? ???? ???? ?
? ????.
- 18. MiniDumpWriteDump
??? ??
1) ?? ?? : dbghelp.h
2) Library ?? : dbghelp.lib
3) dll ?? : dbghelp.dll
???? Debugging Tools for Windows (x86) ????
Windbg? ????? ?? ??? ?? ?? ?? SDK ?? ??
?? ???~~~
(?? ?? ?? ?? ??? 6.12.2.633 ???. )
- 20. ? ??? ??? ?? ? ???
?? ?? ??? ??? ???? ?? ????? ??
?? ?? ?? ??? ??? ??? ??? ? ??? ??
???? ?? ????
?? ?? ??? ?? ?? ?? ??? ? ?? ? ????
??? ?? ???? ?????...
- 21. ? ?? ?~~
CRT Library
3rd party components
????
"SetUnhandledExceptionFilter" and VC8
???? ??????~~~