[kernel32] UnhandledExceptionFilter:

- Print the exception address in the same style the stack frames are printed: module start offset and address separated
- Print CPU registers before starting over with trace addresses

svn path=/trunk/; revision=44495
This commit is contained in:
Gregor Schneider 2009-12-09 21:48:09 +00:00
parent e1e3a08fbf
commit 9709983e45

View file

@ -205,7 +205,7 @@ BasepCheckForReadOnlyResource(IN PVOID Ptr)
}
/*
* @unimplemented
* @implemented
*/
LONG WINAPI
UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo)
@ -274,10 +274,12 @@ UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo)
{
DbgPrint("Faulting Address: %8x\n", ExceptionInfo->ExceptionRecord->ExceptionInformation[1]);
}
DbgPrint("Address: %8x %s\n",
ExceptionInfo->ExceptionRecord->ExceptionAddress,
_module_name_from_addr(ExceptionInfo->ExceptionRecord->ExceptionAddress, &StartAddr, szMod, sizeof(szMod)));
_dump_context ( ExceptionInfo->ContextRecord );
_module_name_from_addr(ExceptionInfo->ExceptionRecord->ExceptionAddress, &StartAddr, szMod, sizeof(szMod));
DbgPrint("Address:\n %8x+%-8x %s\n",
(PVOID)StartAddr, (ULONG_PTR)ExceptionInfo->ExceptionRecord->ExceptionAddress -
(ULONG_PTR)StartAddr, szMod);
#ifdef _X86_
DbgPrint("Frames:\n");
_SEH2_TRY