This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] remote-sim add call to init_thread_list
- From: "Andrew Burgess" <aburgess at broadcom dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 10 Oct 2012 22:08:48 +0100
- Subject: Re: [PATCH] remote-sim add call to init_thread_list
- References: <506C2A17.8060000@broadcom.com>
*ping*
Thanks,
Andrew
On 03/10/2012 1:05 PM, Andrew Burgess wrote:
> When running using a basic exec style target (on linux) I see the following behaviour:
>
>> gdb ./test-program
> (gdb) start
> (gdb) info threads
> Id Target Id Frame
> * 1 process 12285 main () at hello.c:5
> (gdb) start
> The program being debugged has been started already.
> Start it from the beginning? (y or n) y
>
> (gdb) info threads
> Id Target Id Frame
> * 1 process 16295 main () at hello.c:5
>
> ## END ##
>
> Notice that the thread ID remains as 1 after the restart. This is due to the call to init_thread_list in gdb/fork-child.c:fork_inferior.
>
> Currently, when using a simulator target, the ID will increment on each restart.
>
> The patch below adds a similar call to init_thread_list to remote-sim.c:create_inferior so the simulator behaviour will match the native exec style target behaviour.
>
> OK to apply?
>
> Thanks,
> Andrew
>
> gdb/ChangeLog
>
> 2012-10-03 Andrew Burgess <aburgess@broadcom.com>
>
> * remote-sim.c (gdbsim_create_inferior): Call init_thread_list to
> reset thread numbering back to 1.
>
> diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
> index 14e989c..adc77e7 100644
> --- a/gdb/remote-sim.c
> +++ b/gdb/remote-sim.c
> @@ -640,6 +640,9 @@ gdbsim_create_inferior (struct target_ops *target, char *exec_file, char *args,
> else
> argv = NULL;
>
> + if (!have_inferiors ())
> + init_thread_list ();
> +
> if (sim_create_inferior (sim_data->gdbsim_desc, exec_bfd, argv, env)
> != SIM_RC_OK)
> error (_("Unable to create sim inferior."));
>
>
>
>