Re: problem with new vforkdone stop reply in 7.10

Don Breazeal <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 9/15/2015 7:19 AM, Pedro Alves wrote:
> Hi Don,
> 
> Unfortunately, I missed in review that the vforkdone stop reply
> misses indicating the thread ID of the vfork parent which the
> event relates to:
> 
>  @cindex vfork events, remote reply
>  @item vfork
>  The packet indicates that @code{vfork} was called, and @var{r}
>  is the thread ID of the new child process. Refer to
>  @ref{thread-id syntax} for the format of the @var{thread-id}
>  field.  This packet is only applicable to targets that support
>  vfork events.
> 
>  @cindex vforkdone events, remote reply
>  @item vforkdone
>  The packet indicates that a child process created by a vfork
>  has either called @code{exec} or terminated, so that the
>  address spaces of the parent and child process are no longer
>  shared. The @var{r} part is ignored.  This packet is only
>  applicable to targets that support vforkdone events.
> 
> Unfortunately, this is not just a documentation issue.  GDBserver
> is really not specifying the thread ID.  I noticed because
> in non-stop mode, gdb complains:
> 
>  [Thread 6089.6089] #1 stopped.
>  #0  0x0000003615a011f0 in ?? ()
>  0x0000003615a011f0 in ?? ()
>  (gdb) set debug remote 1
>  (gdb) c
>  Continuing.
>  Sending packet: $QPassSignals:e;10;14;17;1a;1b;1c;21;24;25;2c;4c;#5f...Packet received: OK
>  Sending packet: $vCont;c:p17c9.17c9#88...Packet received: OK
>    Notification received: Stop:T05vfork:p17ce.17ce;06:40d7ffffff7f0000;07:30d7ffffff7f0000;10:e4c9eb1536000000;thread:p17c9.17c9;core:2;
>  Sending packet: $vStopped#55...Packet received: OK
>  Sending packet: $D;17ce#af...Packet received: OK
>  Sending packet: $vCont;c:p17c9.17c9#88...Packet received: OK
>    Notification received: Stop:T05vforkdone:;
>  No process or thread specified in stop reply: T05vforkdone:;
>  (gdb)
> 
> This is not non-stop-mode-specific, however.  Consider e.g., that
> in all-stop, you may be debugging more than one process at the
> same time.  You continue, and both processes vfork.  So if you next
> a T05vforkdone, how can we tell which of the parent processes
> has had its child exit/exec?
> 
> Thanks,
> Pedro Alves
> 
Hi Pedro,
Thanks for pointing this out.  I will take a look at it.  This case
would make an interesting test.
--Don
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.