Visual Runtime conflicts with the debugger?

Markus Hitter mah at jump-ing.de
Sun Jul 20 08:24:04 CDT 2008


Hello all,

My pet app (Catia) works partially now. The thing most missing is, it  
can't open a file. As soon as I attempt to do so, the app freezes for  
a minute, then a "Visual C++ Runtime Exception" is shown. The shown  
dialog doesn't feature any meaningful information.


So I moved from "wine" at the command line to "winedbg" to get a  
grip. Unfortunately, this runtime exception doesn't cause the  
debugger to jump in. All I get is one line:

> wine: Unhandled exception 0x80000003 at address 0x7b844351 (thread  
> 0027), starting debugger...


If I force the debugger to pay attention by typing Ctrl-C, I can even  
get a tiny backtrace:

> Backtrace:
> =>1 0xffffe40e (0x0033f260)
>   2 0x00000800 (0x0033f3a0)
>   3 0x7b84ab42 ReadFile+0x264(hFile=0x50, buffer=0x33f448,  
> bytesToRead=0x800, bytesRead=0x33fcc0, overlapped=0x0) [/home/mah/ 
> wine/dlls/kernel32/file.c:451] in kernel32 (0x0033f420)
>   4 0x0040367b in catstart (+0x367b) (0x0033fc58)


Nevertheless, the app continues to run in the GUI as before, making  
it impossible to check print variables or do stepping.


As a third chance, I tried "winedbg --gdb". However, this stops very  
early:

> 00000038:00000013: exception code=0x80000003
> warning: Target reported unsupported offsets:  
> Text=00110e20;Data=000000be;Bss=00000008
> [New Thread 19]
> 0x7b8829fd in DbgBreakPoint () at ../../include/winternl.h:1828
> 1828	static inline void WINAPI DbgBreakPoint(void) { __asm__  
> __volatile__("int3"); }
> trace: 98 => 80


After showing this, no debugger prompt follows and a Ctrl-C is  
answered with a quit of both, the debugger and the app.


As a last resort I tried to insert printf() statements into the  
source, finding me unable to repeat the numbers seen in the tiny  
backtrace above. bytesToRead obviously never has the value 0x800 (=  
2048).


So my question is: How would I go and debug such an issue? Is it even  
possible to set breakpoints, to get meaningful backtraces and print()  
statements and/or to catch Visual Whatever Runtime Exceptions?


Thanks,
Markus

P.S.: This is a current Wine (git) on Ubuntu 64-bit.

- - - - - - - - - - - - - - - - - - -
Dipl. Ing. Markus Hitter
http://www.jump-ing.de/







More information about the wine-devel mailing list