This is the mail archive of the gdb-patches@sourceware.org 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: [RFA]corelow.c: Add tid to add_to_thread_list


On Friday 06 August 2010 03:55:51, Hui Zhu wrote:

> 2010-08-06  Hui Zhu  <teawater@gmail.com>
> 
> 	* corelow.c(add_to_thread_list): Add tid.
> 
> ---
>  corelow.c |   10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> --- a/corelow.c
> +++ b/corelow.c
> @@ -244,7 +244,7 @@ add_to_thread_list (bfd *abfd, asection
>  {
>    ptid_t ptid;
>    int core_tid;
> -  int pid, lwpid;
> +  int pid, lwpid, tid;
>    asection *reg_sect = (asection *) reg_sect_arg;
> 
>    if (strncmp (bfd_section_name (abfd, asect), ".reg/", 5) != 0)
> @@ -278,7 +278,13 @@ add_to_thread_list (bfd *abfd, asection
>    if (current_inferior ()->pid == 0)
>      inferior_appeared (current_inferior (), pid);
> 
> -  ptid = ptid_build (pid, lwpid, 0);
> +  tid = 0;
> +  do
> +    {
> +      ptid = ptid_build (pid, lwpid, tid);
> +      tid ++;
> +    }
> +  while (find_thread_ptid (ptid));
> 
>    add_thread (ptid);

Sorry, no.  It's not a good idea to have the corelow target
using both the lwpid and the tid fields.  It leaves no room for a
thread_stratum target on top to use.  Going by what someone
said on the other thread:

> The goal was always that something could post process the output of
> the kernel crashdump and create something that is gdb compatible.  It
> looks to me like it would take just a moment to strip out all of the
> idle threads.

What are exactly these "threads" with no PID?  How useful is it for gdb
to expose them as threads?  Are these the idle threads, one per core, not
associated with any process?  Are we talking about a regular process core
dump, or some other core dump?  From the comment quoted above, it appears
that it would be expected that something just stripped out / ignored
these "threads"/notes.  Say, a post processor tool, or bfd, or gdb.

BTW, with this particular patch, you've only gotten past this one
problem, but, you'll be tripping on others.  For example, all register
accesses for lwpid=XXX,tid=0, lwpid=XXX,tid=1, lwpid=XXX,tid=2, etc.,
will be going to the same .reg/XXX section.

-- 
Pedro Alves


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