This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH RFA] lin-lwp.c: Mark main thread as stopped when attaching


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]