Christopher Faylor wrote:
>Brian Ford wrote:
>>It looks to me like the stack is corrupted, but I'm probably just being
>>naive.
>
>This is unfortunately a standard stack for a frame-pointerless function
>(probably *WaitForMultipleWindowsEx).  The laborious way to find the
>caller is to do something like a:
>
>x/200x $esp
>
>and then look for 0x6100xxxx addresses in the output, decoding them with
>something like:
>
>l *0x61041234
>
>There will be some garbage on the stack so some 0x6100xxxx addresses will
>not be useful.
>
Ok.  Thanks.

The hand decoded trace (The same one as before.  I still had gdb up.) is
below.

>That's the only way I know of to deal with this.  If gcc produced dwarf2
>output, we could use the CFI to get more accurate information about the
>stack frame but that's not going to happen anytime soon.
>
Was that a hint for me :).  Getting gcc to product dwarf2 output is easy.
Getting the resulting executable to run with the dwarf2 sections is the
hard part.  It (dwarf2) needs a section relative relocation in gas/ld/bfd
like I said before.  Know anyone who wants to help? :D

>>I included all three thread backtraces just in case anyone can see
>>anything.  Let me know if have any better idea about how to track this
>>down.
>
>The trace from thread 2 is what I would expect.  Thread 1 is obviously
>waiting for something but I don't know what without more stack info.
>

I'll do thread 3 too if you think it is relevent.

(gdb) info threads
  3 thread 1920.0x4f0  0x77f75a59 in ntdll!DbgUiConnectToDbg ()
   from /cygdrive/c/WINDOWS/System32/ntdll.dll
  2 thread 1920.0x6e4  0x7ffe0304 in ?? ()
* 1 thread 1920.0x760  0x7ffe0304 in ?? ()
(gdb) thread 1
[Switching to thread 1 (thread 1920.0x760)]#0  0x7ffe0304 in ?? ()
(gdb) bt
#0  0x7ffe0304 in ?? ()
#1  0x77f5c524 in ntdll!ZwWaitForMultipleObjects ()
   from /cygdrive/c/WINDOWS/System32/ntdll.dll
#2  0x77e75ee0 in WaitForMultipleObjectsEx ()
   from /cygdrive/c/WINDOWS/system32/kernel32.dll
#3  0x610901e9 in muto::acquire(unsigned long) 
(../../../../cygwin/winsup/cygwin/sync.cc:75)
#4  0x6108b587 is in WFMO (../../../../cygwin/winsup/cygwin/sigproc.cc:1248)
#5  0x61090410 is in close_all_files() (../../../../cygwin/winsup/cygwin/syscalls.cc:10
#6  0x6108d81f is in spawn_guts(char const*, char const* const*, char const* const*, 
int) (../../../../cygwin/winsup/cygwin/spawn.cc:847)
#7  0x6108c830 is in do_cleanup(void*) (../../../../cygwin/winsup/cygwin/spawn.cc:336)
(gdb) thread 2
[Switching to thread 2 (thread 1920.0x6e4)]#0  0x7ffe0304 in ?? ()
(gdb) bt
#0  0x7ffe0304 in ?? ()
#1  0x77f5bfb4 in ntdll!ZwReadFile ()
   from /cygdrive/c/WINDOWS/System32/ntdll.dll
#2  0x77e7abbd in ReadFile () from /cygdrive/c/WINDOWS/system32/kernel32.dll
#3  0x6108ad36 is in wait_sig(void*) (../../../../cygwin/winsup/cygwin/sigproc.cc:1089)
#4  0x610a0ddb is in pthread_key::set(void const*) 
(../../../../cygwin/winsup/cygwin/thread.cc:1384)
#5  0x61002d00 is in cygthread::stub(void*) 
(../../../../cygwin/winsup/cygwin/cygthread.cc:32)
#6  0x61024a70 is in handle_exceptions 
(../../../../cygwin/winsup/cygwin/exceptions.cc:420)
#7  0x61002d00 is in cygthread::stub(void*) 
(../../../../cygwin/winsup/cygwin/cygthread.cc:32)
(gdb) thread 3
[Switching to thread 3 (thread 1920.0x4f0)]#0  0x77f75a59 in ntdll!DbgUiConnectToDbg 
() from /cygdrive/c/WINDOWS/System32/ntdll.dll
(gdb) bt
#0  0x77f75a59 in ntdll!DbgUiConnectToDbg ()
   from /cygdrive/c/WINDOWS/System32/ntdll.dll
#1  0x77f5f31f in ntdll!KiUserCallbackDispatcher ()
   from /cygdrive/c/WINDOWS/System32/ntdll.dll
#2  0x00000005 in ?? ()
#3  0x00000004 in ?? ()
#4  0x00000001 in ?? ()
#5  0x003fffd0 in ?? ()
#6  0x85e0d020 in ?? ()
#7  0xffffffff in ?? ()
#8  0x77fa88f0 in wcstombs () from /cygdrive/c/WINDOWS/System32/ntdll.dll
(gdb)

-- 
Brian Ford
Senior Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
Phone: 314-551-8460
Fax:   314-551-8444

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to