Ignoring exceptions

Fabian Cenedese Cenedese at indel.ch
Tue Sep 3 07:54:10 CDT 2002


Hi

I still try to find the reason for the exception in my app while loading an 
ocx. But I don't seem to make much progress. Here is a new trace:

08153fd8:Call kernel32.lstrlenA(40791300 "") ret=5f587c81
08153fd8:Ret  kernel32.lstrlenA() retval=00000000 ret=5f587c81
08153fd8:Call kernel32.MultiByteToWideChar(00000000,00000000,40791300 
"",ffffffff,405c45fc,00000001) ret=5f5010de
08153fd8:Ret  kernel32.MultiByteToWideChar() retval=00000001 ret=5f5010de
08153fd8:Call kernel32.GetProcAddress(65340000,00000002) ret=5f54db21
08153fd8:Ret  kernel32.GetProcAddress() retval=65341408 ret=5f54db21
08153fd8:Call kernel32.IsBadReadPtr(405c469c,00000020) ret=40c27bce
08153fd8:Ret  kernel32.IsBadReadPtr() retval=00000000 ret=40c27bce
08153fd8:Call kernel32.IsBadReadPtr(405c467c,00000004) ret=40c27bce
08153fd8:Ret  kernel32.IsBadReadPtr() retval=00000000 ret=40c27bce
08153fd8:Call ntdll.RtlSizeHeap(40360000,00000000,403c0850) ret=65f019c3
trace:heap:RtlSizeHeap (40360000,00000002,403c0850): returning 00000020
08153fd8:Ret  ntdll.RtlSizeHeap() retval=00000020 ret=65f019c3
08153fd8:Call kernel32.IsBadReadPtr(41986f50,00000020) ret=10214168
08153fd8:Ret  kernel32.IsBadReadPtr() retval=00000000 ret=10214168
08153fd8:Call kernel32.IsBadWritePtr(41986f50,00000020) ret=10214180
08153fd8:Ret  kernel32.IsBadWritePtr() retval=00000000 ret=10214180
08153fd8:Call kernel32.OutputDebugStringA(405c2154 "Warning: constructing 
COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).\r\n") ret=10215139
08073540:Ret  kernel32.ContinueDebugEvent() retval=00000001 ret=404c3ee2
08073540:Call kernel32.WaitForDebugEvent(40615e0c,ffffffff) ret=404c3ef8
08073540:Ret  kernel32.WaitForDebugEvent() retval=00000001 ret=404c3ef8
08073540:Call 
kernel32.ReadProcessMemory(0000002c,405c2154,40615cf4,00000100,40615cc4) 
ret=404c2e27
08073540:Ret  kernel32.ReadProcessMemory() retval=00000001 ret=404c2e27
08073540:Call kernel32.ContinueDebugEvent(08153f20,08153fd8,00010002) 
ret=404c3ee2
08153fd8:Ret  kernel32.OutputDebugStringA() retval=00000000 ret=10215139
08153fd8:Call kernel32.RaiseException(e06d7363,00000001,00000003,405c45b4) 
ret=10209499

It used to stop right after the RtlSizeHeap function. I don't know why it's 
later now, but leads me to thinking that it's just accidentally at this 
place and the reason is much earlier.
Anyway, I now have a new message stating an exception 
(DISP_E_MEMBERNOTFOUND). After looking into MSDN to find out what it means 
I found this little article:


<MSDN>
Debugging Output You Can Safely Ignore

-- snip --
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
First-chance exception in TSTCON32.EXE (MFCO42D.DLL): 0xE06D7363: Microsoft 
C++          Exception.

-- snip --
The last two lines are notification that an exception has been thrown 
because the test container didn't provide a Color property to be read. This 
is okay, because we've provided a default value for the property. You won't 
get this error if you use a container that provides the property, such as a 
Visual Basic application.

In Visual C++ version 4.1, the only line I got was a warning about the 
exception for properties that couldn't be loaded from the container.

First-chance exception in TSTCON32.EXE (MFC40.DLL): 0xE06D7363: Microsoft 
C++ Exception.

Depending on how your container handles threads, you may also get 
occasional messages about threads exiting. You don't need to worry about 
these, either.
</MSDN>

It seems to me that it's probably this exception that stops my app. Somehow 
it is better handled in Windows than in Wine as my app runs in Windows.
I also tried a pure VB-app with just my ocx in it. Output looks quite similar.

Can anybody with more insight in this matter give me some hints?

Thanks (for helping and for reading my long mails :)

Fabi





More information about the wine-devel mailing list