On 2013-04-16 AM 1:03, Dave Korn wrote:
As far as i know, wait_sig thread in debugee is interrupted after stepping or breakpoint( n s si ni ). so, if you don't give cygwin sufficient time during gdb session until wait_sig thread handles signal about terminal, it hangs like you observed.Thread 2 (Thread 5536.0xe2c): #0 0x77f88a87 in ntdll!ZwReadFile () from /win/c/WINNT/system32/ntdll.dll #1 0x7c586381 in ?? () #2 0x610dd075 in wait_sig () at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/sigproc.cc:1360 #3 0x61003e65 in cygthread::callfunc (this=0x6118a400 <threads>, issimplestub=<optimized out>) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/cygthread.cc:51 #4 0x610043ef in cygthread::stub (arg=0x6118a400 <threads>) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/cygthread.cc:93 #5 0x6100533d in _cygtls::call2 (this=<optimized out>, func=0x610043a0 <cygthread::stub(void*)>, arg=0x6118a400 <threads>, buf=0x610054cb <_cygtls::call(unsigned long (*)(void*, void*), void*)+91>) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/cygtls.cc:99 #6 0x0270ffb4 in ?? () #7 0x7c57b3bc in ?? () #8 0x00000000 in ?? ()Thread 1 (Thread 5536.0x1640): #0 0x77f88f43 in ntdll!ZwWriteFile () from /win/c/WINNT/system32/ntdll.dll #1 0x7c5864f9 in ?? () #2 0x610dc3f4 in sig_send (p=0x14ea444, si=..., tls=0x0) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/sigproc.cc:736 #3 0x6106b028 in tty_min::kill_pgrp (this=0x60fc0000, sig=-43) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/fhandler_termios.cc:133 #4 0x6106b129 in fhandler_termios::tcsetpgrp ( this=0x61274690 <__real__Znwj+1629963920>, pgid=2428) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/fhandler_termios.cc:85 #5 0x610f9f78 in tcsetpgrp (fd=0, pgid=2428) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/termios.cc:237 #6 0x610d6745 in _sigfe () from /usr/bin/cygwin1.dll #7 0x200bbb70 in ?? () #8 0x00418662 in ?? () #9 0x00521908 in ?? () #10 0x004eb052 in ?? () ---Type <return> to continue, or q <return> to quit--- #11 0x004eb265 in ?? () #12 0x004dd4a0 in ?? () #13 0x004dd6a5 in ?? () #14 0x005b11ab in ?? () #15 0x004feccb in ?? () #16 0x004ff6c0 in ?? () #17 0x005f2de2 in ?? () #18 0x004fed3b in ?? () #19 0x004fd9a0 in ?? () #20 0x004fdfc4 in ?? () #21 0x004fe4b8 in ?? () #22 0x004fe537 in ?? () #23 0x004f8345 in ?? () #24 0x004f6e0a in ?? () #25 0x004f8a85 in ?? () #26 0x004f6e0a in ?? () #27 0x004f9632 in ?? () #28 0x004011a8 in ?? () #29 0x6100763a in _cygwin_exit_return () at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/dcrt0.cc:974 #30 0x6100533d in _cygtls::call2 (this=<optimized out>, func=0x61006c50 <dll_crt0_1(void*)>, arg=0x0, buf=0x610054cb <_cygtls::call(unsigned long (*)(void*, void*), void*)+91>) at /usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/cygtls.cc:99 #31 0x014eff78 in ?? () #32 0x006c1df2 in ?? () #33 0x00401015 in ?? () #34 0x7c5989d5 in ?? () #35 0x00000000 in ?? () (gdb)Some notes on the above: The same happens with both the previous version and current snapshot of the cygwin dll. It also happens with both current gdb and an old gdb 6.8.0.20080328-cvs that I have lying around. The hw.exe in question is your bog-standard hello world, compiled with "-g -O0" using gcc4-4.5.3-3. "kill -9" won't kill gdb; I have to use Windows task manager. If I've attached gdb to the hung gdb, I can kill it from there using the "k" instruction. Anyone else having similar problems? cheers, DaveK
-- Regards. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple

