This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] GDB checkpoint can't/shouldn't be possible with multiple threads on Linux
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: Kevin Pouget <kevin dot pouget at gmail dot com>
- Date: Tue, 12 Apr 2011 11:59:05 +0100
- Subject: Re: [PATCH] GDB checkpoint can't/shouldn't be possible with multiple threads on Linux
- References: <BANLkTi=pTUVx5iHkb0-0oZyKJHNbALY2SA@mail.gmail.com>
On Tuesday 12 April 2011 08:44:14, Kevin Pouget wrote:
> as I reported in http://sourceware.org/bugzilla/show_bug.cgi?id=12628
> and discussed in http://sourceware.org/ml/gdb/2011-04/msg00018.html,
> (does such a patch require a test case?)
Tests are always good, tough I'd approve this without one.
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index 880781a..611aa7e 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,3 +1,9 @@
> +2011-04-12 Kevin Pouget <kevin.pouget@st.com>
> +
> + PR threads/12628
> + * linux-fork.c (checkpoint_command): Disallow checkpointing of
> + processes with multiple threads.
> +
Next time please post ChangeLog entries as plaintext,
separate from the patch.
> diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
> index 7f654af..c137604 100644
> --- a/gdb/linux-fork.c
> +++ b/gdb/linux-fork.c
> @@ -628,6 +628,11 @@ checkpoint_command (char *args, int from_tty)
> pid_t retpid;
> struct cleanup *old_chain;
>
> + /* Ensure that the inferior is not multithreaded. */
Double space after periods.
> + update_thread_list () ;
> + if (thread_count () > 1)
> + error (_("checkpoint: can't checkpoint multiple threads.")) ;
You have spurious spaces before `;'.
thread_count() returns the sum total number of threads of all
inferiors/process. You want the number of threads of the
current process only. AFAIR, there's no function handy that
returns you that. (Since you're interested in checking for multiple
threads, you could use iterate_over_threads with a
callback that returns true if it sees a second thread for a
given process, so you don't really need to count all
the threads.)
--
Pedro Alves