[Bug 14697] wineserver: debug events can block completion of queued user APCs

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jun 14 01:32:43 CDT 2011


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download
             Status|CLOSED                      |UNCONFIRMED
                URL|                            |http://www.ollydbg.de/versi
                   |                            |on2.html
         Resolution|FIXED                       |

--- Comment #5 from Anastasius Focht <focht at gmx.net> 2011-06-14 01:32:38 CDT ---
Hello,

reopening, I'm frequently encountering this while debugging (with ollydbg2) ...
very annoying.

The problem has already been described in comment #1

Another example backtrace of debugger thread with all the debuggee threads
suspended due to dll load or exception event dispatched.

The debugger main loop blocks forever because it can't carry out an APC for
NtQueryVirtualMemory in debuggee address space.

--- snip ---
Backtrace:
=>0 0x68000830 GLIBC_2+0x830() in ld-linux.so.2 (0x0032a6fc)
  1 0x7bc81eae NTDLL_wait_for_multiple_objects+0x26c(count=0x1,
handles=0x32a9b4, flags=0x4, timeout=(nil), signal_object=0x0(nil))
[/opt/projects/wine/wine-git/dlls/ntdll/sync.c:1124] in ntdll (0x0032a91c)
  2 0x7bc81fb1 NtWaitForMultipleObjects+0x67(count=0x1, handles=0x32a9b4,
wait_all=0, alertable=0, timeout=(nil))
[/opt/projects/wine/wine-git/dlls/ntdll/sync.c:1162] in ntdll (0x0032a96c)
  3 0x7bc81ff7 NtWaitForSingleObject+0x41(handle=0xa4, alertable=0,
timeout=(nil)) [/opt/projects/wine/wine-git/dlls/ntdll/sync.c:1171] in ntdll
(0x0032a9ac)
  4 0x7bc81b2a NTDLL_queue_process_apc+0x185(process=0x70, call=0x32abc8,
result=0x32aba0) [/opt/projects/wine/wine-git/dlls/ntdll/sync.c:1070] in ntdll
(0x0032aadc)
  5 0x7bc92c82 NtQueryVirtualMemory+0x250(process=0x70, addr=0x570000,
info_class=MemoryBasicInformation, buffer=0x32acc8, len=0x1c, res_len=0x32ac78)
[/opt/projects/wine/wine-git/dlls/ntdll/virtual.c:2191] in ntdll (0x0032ac4c)
  6 0x7b87bc83 VirtualQueryEx+0x34(process=0x70, addr=0x570000, info=0x32acc8,
len=0x1c) [/opt/projects/wine/wine-git/dlls/kernel32/virtual.c:289] in kernel32
(0x0032ac8c)
  7 0x00452464 in ollydbg (+0x52463) (0x0032afb8)
  8 0x0044a34b in ollydbg (+0x4a34a) (0x0032c198)
  9 0x0044c25d in ollydbg (+0x4c25c) (0x0032f0f0)
  10 0x0040e439 in ollydbg (+0xe438) (0x0032fe28)
  11 0x004e0f0f in ollydbg (+0xe0f0e) (0x0032fe58)
  12 0x00000000 (0x0032fe78)
  13 0x7b85fb4f start_process+0x144(peb=0x7ffdf000)
[/opt/projects/wine/wine-git/dlls/kernel32/process.c:1087] in kernel32
(0x0032fec8)
  14 0x7bc7d9fc call_thread_func+0xb() in ntdll (0x0032fed8)
  15 0x7bc7da3a call_thread_entry_point+0x33(entry=0x7b85fa0a, arg=0x7ffdf000)
[/opt/projects/wine/wine-git/dlls/ntdll/signal_i386.c:2499] in ntdll
(0x0032ffb8)
  16 0x7bc53411 start_process+0x25(kernel_start=0x7b85fa0a)
[/opt/projects/wine/wine-git/dlls/ntdll/loader.c:2612] in ntdll (0x0032ffe8)
  17 0x68026b55 wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
0x68000830 GLIBC_2+0x830 in ld-linux.so.2: int    $0x80
--- snip ---

One way to work around this is to have the debugger break on dll load events
and manually issuing "continue".
It seems to "relax" the suspension race.

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