This is the mail archive of the
mailing list for the Archer project.
Re: gdbstub initial code, v5
- From: Roland McGrath <roland at redhat dot com>
- To: Oleg Nesterov <oleg at redhat dot com>
- Cc: archer at sourceware dot org, utrace-devel at redhat dot com
- Date: Tue, 24 Aug 2010 16:36:00 -0700 (PDT)
- Subject: Re: gdbstub initial code, v5
- References: <20100820173749.GA24358@redhat.com>
> When the main thread exits, gdbserver still exposes it to gdb as
> a running process. It is visible via "info threads", you can switch
> to this thread, $Tp or $Hx result in "OK" as if this thread is alive.
> gdbserver even pretends that $vCont;x:DEAD_THEAD works, although
> this thread obviously can never report something.
This is sort of consistent with the kernel treatment. The main thread
stays around as a zombie, acting as a moniker for the whole process. But
indeed that is not actually useful for any thread-granularity control or
information (well, there is the dead thread's usage stats, but that's all).
> I don't think this is really right. This just confuses the user, and
> imho this should be considered like the minor bug.
I tend to agree, but don't think it's a big issue either way, really.
> ugdb doesn't do this. If the main thread exits - it exits like any
> other thread. I played with gdb, it seems to handle this case fine.
Sounds good to me!
> - The exit code (Wxx) can be wrong in mt-case.
> The problem is, ->report_death can't safely access
> ->group_exit_code with kernel < 2.6.35. This is
Don't even worry about it. If there is something trivial to do that makes
it better for earlier kernels, then go ahead. But if the easy thing to do
gives correct results on >=2.6.35 and racily wrong or random results on
older kernels, then we can just live with that.