Hi everybody,
I have a windows program which raises an exception as part of its normal execution (it tries to call int 0x01). The program setups an exception handler, catches the exception, and resumes it execution after the call to int 0x01. This works fine when run in wine.
However, when I try to run the program in winedbg, the debugger catches the exeception, interrupts the program execution, prints a register dump, stack dump & backtrace, and waits. If I continue the execution using 'cont' (after incrementing $eip by 2 to skip int 0x01), the program continues but the exception handler installed bu the user program is not called.
I was wondering if it was a bug or a normal behaviour, and if it is normal behaviour, is there a workaround ?
Thanks in advance for your help.
Laurent Pinchart
Laurent Pinchart wrote:
Hi everybody,
I have a windows program which raises an exception as part of its normal execution (it tries to call int 0x01). The program setups an exception handler, catches the exception, and resumes it execution after the call to int 0x01. This works fine when run in wine.
However, when I try to run the program in winedbg, the debugger catches the exeception, interrupts the program execution, prints a register dump, stack dump & backtrace, and waits. If I continue the execution using 'cont' (after incrementing $eip by 2 to skip int 0x01), the program continues but the exception handler installed bu the user program is not called.
I was wondering if it was a bug or a normal behaviour, and if it is normal behaviour, is there a workaround ?
Thanks in advance for your help.
Laurent Pinchart
Keep in mind that I am NOT a wine guru but it looks like copy protection to me. My guess it you use trace relay the same thing will occure as when you use the debugger.
Tony Lambregts
I have a windows program which raises an exception as part of its normal execution (it tries to call int 0x01). The program setups an exception handler, catches the exception, and resumes it execution after the call to int 0x01. This works fine when run in wine.
However, when I try to run the program in winedbg, the debugger catches the exeception, interrupts the program execution, prints a register dump, stack dump & backtrace, and waits. If I continue the execution using 'cont' (after incrementing $eip by 2 to skip int 0x01), the program continues but the exception handler installed bu the user program is not called.
I was wondering if it was a bug or a normal behaviour, and if it is normal behaviour, is there a workaround ?
Keep in mind that I am NOT a wine guru but it looks like copy protection to me. My guess it you use trace relay the same thing will occure as when you use the debugger.
Thanks for your answer, but I want to use the debugger because I need to put a breakpoint at some point in the code and check some register values there.
Laurent Pinchart
PS: Yes, it's copy protection
On Sat, 6 Apr 2002, Laurent Pinchart wrote: [...]
I was wondering if it was a bug or a normal behaviour, and if it is normal behaviour, is there a workaround ?
Did you try pass?
See: http://wine.codeweavers.com/docs/wine-devel/dbg-commands.shtml#AEN576
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ Avoid the Gates of Hell - use Linux.
I was wondering if it was a bug or a normal behaviour, and if it is normal behaviour, is there a workaround ?
Did you try pass?
See: http://wine.codeweavers.com/docs/wine-devel/dbg-commands.shtml#AEN576
I had missed it. Thanks a lot.
Laurent Pinchart
[...]
I was wondering if it was a bug or a normal behaviour, and if it is normal behaviour, is there a workaround ?
Did you try pass?
Sorry, spoke too fast :-(
I get this when I try pass.
Wine-dbg>pass Invalid address for breakpoint 1, disabling it Invalid address for breakpoint 2, disabling it Invalid address for breakpoint 3, disabling it Invalid address for breakpoint 4, disabling it Process of pid=08071a50 has terminated
The process shouldn't terminate so fast.
Laurent Pinchart
I get this when I try pass.
Wine-dbg>pass Invalid address for breakpoint 1, disabling it Invalid address for breakpoint 2, disabling it Invalid address for breakpoint 3, disabling it Invalid address for breakpoint 4, disabling it Process of pid=08071a50 has terminated
The process shouldn't terminate so fast.
this should be fixed in latest CVS. A+