Re: [PATCH] fix error sending signal to dead process

Keith Seitz <[email protected]> Wed, 18 Apr 2012 17:22:05 -0700
Newsgroups gmane.comp.debugging.insight
Message-ID <[email protected]>
On 04/05/2012 05:45 AM, Patrick Monnerat wrote:
> The attached patch fixes this problem. It simply do not pass signal to
> tcl if the pid is null.

A nit or two, comments below.

> P.S.: the bug report system linked from your web site
> (http://sources.redhat.com/cgi-bin/gnatsweb.pl?database=insight&user=gue
> st&password=guest&cmd=login) is down (HTTP error 500).

Gah! It looks like sourceware is now 100% bugzilla, but insight was 
never "converted" (aka I thought the "old" bug database was still 
around). I'll update the page to ask viewers to submit bugs here for the 
interim. Thank you for bringing this to my attention.

> diff -Naur insight-7.4.50.orig/gdb/gdbtk/generic/gdbtk-hooks.c insight-7.4.50.new/gdb/gdbtk/generic/gdbtk-hooks.c
> --- insight-7.4.50.orig/gdb/gdbtk/generic/gdbtk-hooks.c	2012-03-28 15:09:12.000000000 +0200
> +++ insight-7.4.50.new/gdb/gdbtk/generic/gdbtk-hooks.c	2012-04-05 12:44:20.284306992 +0200
> @@ -804,7 +804,7 @@
>   gdbtk_annotate_signal (void)
>   {
>     char *buf;
> -  struct thread_info *tp = inferior_thread ();
> +  struct thread_info *tp;
>
>     /* Inform gui that the target has stopped. This is
>        a necessary stop button evil. We don't want signal notification
> @@ -812,6 +812,11 @@
>        timeout. */
>     Tcl_Eval (gdbtk_interp, "gdbtk_stop_idle_callback");
>
> +  if (ptid_equal(inferior_ptid, null_ptid))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

There should be spaces between function names and opening parenthesis. 
[Yeah, it's rather lame, but it is GNU coding standard. Insight follows 
GDB's conventions.]

ChangeLog entry?

> +    return;
> +
> +  tp = inferior_thread ();
> +
>     buf = xstrprintf ("gdbtk_signal %s {%s}",
>   	     target_signal_to_name (tp->suspend.stop_signal),
>   	     target_signal_to_string (tp->suspend.stop_signal));

[Aside: Eew. I can't believe Tcl_Eval is still being used!]

Keith