www.delorie.com/archives/browse.cgi | search |
On Sun, 28 Aug 2005, Pavel Tsekov wrote: > Hello, > > I did trace this problem an it looks like a race in Cygwin but I may be > wrong. Here I am providing two backtraces from a debug session - the first > one shows what happens normally and the second one shows the hang: [...] Just as a confirmation that what you see in the debug output is true here is the return address to which the signal handler must return when zsh hangs: (gdb) x $eip 0x10049293 <zhandler+3>: 0x5794458d (gdb) disass zhandler 0x10049293 + 3 Dump of assembler code from 0x10049290 to 0x10049296: 0x10049290 <zhandler+0>: push %ebp 0x10049291 <zhandler+1>: mov %esp,%ebp 0x10049293 <zhandler+3>: lea 0xffffff94(%ebp),%eax End of assembler dump. (gdb) x $esp+4 0x22eb68: 0x6101e498 (gdb) x 0x6101e498 0x6101e498 <_ZN7_cygtls19call_signal_handlerEv+140>: 0xfffc458b This address points after the `call' instructions which invokes the signall handler i.e. as if it is a normal call. When everything is ok the return address is set to the address of sigreturn. Another thing I noticed is that when the hang occurs the stack pointer for zhandler lives at a different address which seems strange - again this may be irrelevant . -- 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/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |