[Bug 30572] New: Add support for vectored continue handlers (AddVectoredContinueHandler, RemoveVectoredContinueHandler)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed May 2 08:12:51 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=30572

             Bug #: 30572
           Summary: Add support for vectored continue handlers
                    (AddVectoredContinueHandler,
                    RemoveVectoredContinueHandler)
           Product: Wine
           Version: 1.5.3
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: ntdll
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net
    Classification: Unclassified


Hello,

an improvement, might come handy in future.
Newer .NET runtimes (3.x/4.x) and certain applications make use of vectored
continue handlers for better error reporting/diagnosis.

Currently there is no harm if the export is not found in kernel32 (error
reporting using event api):

--- snip ---
003b:Call KERNEL32.GetModuleHandleW(79203ef8 L"kernel32.dll") ret=792a7116
003b:Ret  KERNEL32.GetModuleHandleW() retval=7b810000 ret=792a7116
003b:Call KERNEL32.GetProcAddress(7b810000,792a7210
"AddVectoredExceptionHandler") ret=792a712d
003b:Ret  KERNEL32.GetProcAddress() retval=7bc21e3c ret=792a712d
003b:Call KERNEL32.GetProcAddress(7b810000,792a71f0
"RemoveVectoredExceptionHandler") ret=792a713a
003b:Ret  KERNEL32.GetProcAddress() retval=7bc23534 ret=792a713a
003b:Call KERNEL32.GetProcAddress(7b810000,792a71d4
"AddVectoredContinueHandler") ret=792a7147
003b:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=792a7147
003b:Call KERNEL32.GetProcAddress(7b810000,792a71b4
"RemoveVectoredContinueHandler") ret=792a7154
003b:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=792a7154
003b:Call ntdll.RtlAddVectoredExceptionHandler(00000001,791f5a7c) ret=792a7182
003b:Ret  ntdll.RtlAddVectoredExceptionHandler() retval=001586a0 ret=792a7182
003b:Call KERNEL32.GetModuleHandleW(792083bc L"mscoree.dll") ret=792a7064
003b:Ret  KERNEL32.GetModuleHandleW() retval=79000000 ret=792a7064
003b:Call KERNEL32.GetProcAddress(79000000,00000018) ret=792a7086
003b:Ret  KERNEL32.GetProcAddress() retval=79008017 ret=792a7086
003b:Call KERNEL32.GetProcAddress(603b0000,00000018) ret=79008056
003b:Ret  KERNEL32.GetProcAddress() retval=603b4470 ret=79008056
003b:Call KERNEL32.SetUnhandledExceptionFilter(603e468a) ret=603b4791
003b:Ret  KERNEL32.SetUnhandledExceptionFilter() retval=00404395 ret=603b4791 
...
--- snip ---

MSDN:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms679273%28v=vs.85%29.aspx
(AddVectoredContinueHandler)

http://msdn.microsoft.com/en-us/library/windows/desktop/ms680567%28v=vs.85%29.aspx
(RemoveVectoredContinueHandler)

---
Some more information how it works:

Extract from "Chapter 25 - Unhandled Exceptions, Vectored Exception Handling,
and C++ Exceptions"
Windows Via C/C++
by Jeffrey Richter and Christophe Nasarre 
Microsoft Press 2008

http://vmg.pp.ua/books/%D0%9A%D0%BE%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B%D0%98%D1%81%D0%B5%D1%82%D0%B8/Microsoft/win32api/Windows%20Via%20C%20CPLUSPLUS/316856622.htm

MSDN blog:
http://blogs.msdn.com/b/zhanli/archive/2010/06/25/c-tips-addvectoredexceptionhandler-addvectoredcontinuehandler-and-setunhandledexceptionfilter.aspx

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list