"Erich E. Hoover" ehoover@mines.edu wrote:
The attached patch changes the test_timers() crash function to use
RtlRaiseException (if available) rather than attempting to write to memory address 0. This change stops the timer tests from hanging on the 64-bit VM.
Why not use kernel32.RaiseException (which is always available) instead?
On Mon, Nov 21, 2011 at 9:51 PM, Dmitry Timoshkov dmitry@baikal.ru wrote:
"Erich E. Hoover" ehoover@mines.edu wrote:
The attached patch changes the test_timers() crash function to use RtlRaiseException (if available) rather than attempting to write to memory address 0. This change stops the timer tests from hanging on the 64-bit VM.
Why not use kernel32.RaiseException (which is always available) instead?
MSDN indicates that RaiseException is only available starting with win2k, is it actually safe to use? I used RtlRaiseException because that's what's used in the ntdll tests and I saw no other exception raising examples in a quick "grep" though Wine's tests.
Erich Hoover ehoover@mines.edu
"Erich E. Hoover" ehoover@mines.edu wrote:
Why not use kernel32.RaiseException (which is always available) instead?
MSDN indicates that RaiseException is only available starting with win2k, is it actually safe to use? I used RtlRaiseException because that's what's used in the ntdll tests and I saw no other exception raising examples in a quick "grep" though Wine's tests.
kernel32.RaiseException is just a wrapper around an ntdll one. I'd expect the kernel32 API be always available despite what MSDN claims.
On Mon, Nov 21, 2011 at 10:08 PM, Dmitry Timoshkov dmitry@baikal.ru wrote:
... kernel32.RaiseException is just a wrapper around an ntdll one. I'd expect the kernel32 API be always available despite what MSDN claims.
For some reason that causes the crash function to be called twice on the 64-bit VM, thoughts?: http://testbot.winehq.org/JobDetails.pl?Key=15599
Erich Hoover ehoover@mines.edu
On Tue, Nov 22, 2011 at 2:28 PM, Erich E. Hoover ehoover@mines.edu wrote:
On Mon, Nov 21, 2011 at 10:08 PM, Dmitry Timoshkov dmitry@baikal.ru wrote:
... kernel32.RaiseException is just a wrapper around an ntdll one. I'd expect the kernel32 API be always available despite what MSDN claims.
For some reason that causes the crash function to be called twice on the 64-bit VM, thoughts?: ...
Ok, I've modified the test a little and it appears that on the 64-bit VMs that there is new behavior with the way an exception is handled within a timer routine. A continuable exception will just drop straight back to the timer routine whereas a non-continuable exception will abort the process. Previously both types of exceptions would cause the timer routine to bail. I'm thinking that maybe a "broken()" should be in order, but I would appreciate some feedback before proceeding. https://testbot.winehq.org/JobDetails.pl?Key=15683
Erich Hoover ehoover@mines.edu