This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH RFA] lin-lwp.c: Mark main thread as stopped when attaching
- From: Mark Kettenis <kettenis at science dot uva dot nl>
- To: Kevin Buettner <kevinb at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: 21 Nov 2001 13:07:15 +0100
- Subject: Re: [PATCH RFA] lin-lwp.c: Mark main thread as stopped when attaching
- References: <1011119195735.ZM16446@ocotillo.lan>
Kevin Buettner <kevinb@cygnus.com> writes:
> The patch below marks the main pid as stopped when attaching. If it
> is not marked as such, then it is not (re)started when continuing if
> the user first changes the current thread.
>
> The practical effects of this problem may be demonstrated on a
> Linux/x86 sytem as follows:
>
> 1) Start the linux-dp program and make note of the process id of the
> main thread.
> 2) Debug the linux-dp program and attach to PID representing the
> main thread.
> 3) Do ``info threads'' and pick out a thread other than the main
> one.
> 4) Use GDB's ``thread'' command to switch to this thread.
> 5) Continue the program.
> 6) Attempt to interrupt the program with Ctrl-C. It will be impossible
> to do so. (Examining the threads from another shell with the
> ``ps'' command is also instructive at this stage.)
Ah yes, the initial attach doesn't go through the lin_lwp layer. When
the libthreads_db stuff is detected and lin_lwp_attach_lwp is called
for all threads the main thread isn't marked as stopped.
> Jim Blandy deserves credit for arriving at the above procedure for
> reproducing this problem.
>
> The patch below fixes this bug. Okay to commit?
Could you change the comment to say that we *assume* that the thread is
stopped and therefore mark it as such? Otherwise OK.
Mark