Debugger startup

Robert Shearman rob at codeweavers.com
Sat Jul 9 18:38:32 CDT 2005


Robert Lunnon wrote:

>To implement a Solaris debugger I have traced the wineservers startup and 
>there is something I don't understand. I get the following stack trace:
>
>send_thread_signal+0x4a(80aab90, 10)
>stop_thread+0x1f(80aab90)
>suspend_process+0x4d(81c72a8)
>debugger_attach+0xf1(81c72a8, 81d1b58)
>req_debug_process+0x4c(81d1c38, 80477a0)
>call_req_handler+0x74(81d1b58)
>read_request+0x68(81d1b58)
>thread_poll_event+0x62(81d22b0, 1)
>fd_poll_event+0x14(81d22b0, 1)
>main_loop+0x9e(804785c, 8056a51, 1, 8047868, 8047870, 804785c)
>main+0xc6(1, 8047868, 8047870)
>_start+0x5d(1, 804795c, 0, 8047979, 80479f6, 8047a0a)
>
>bebugger_attach calls suspend_process then stop_thread
>
>stop_thread sends a SIGUSR1 at the thread of interest. The result of this is 
>that the thread is terminated and there is nothing to attach to....
>
>Why is this SIGUSR1 sent ?
>  
>

It is the way suspending processes is done because the kernel doesn't 
allow us to do it. The handler should be installed in the file 
dlls/ntdll/signal_i386.c. You probably want to find out why it isn't 
being installed correctly.

-- 
Rob Shearman




More information about the wine-devel mailing list