This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: bug in gdb/target.c:target_signal_to_name
- From: Andrew Cagney <ac131313 at cygnus dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: Petr Ledvina <ledvinap at kae dot zcu dot cz>,gdb-patches at sources dot redhat dot com
- Date: Sun, 13 Jan 2002 16:54:57 -0500
- Subject: Re: bug in gdb/target.c:target_signal_to_name
- References: <Pine.OSF.4.33.0111301833160.4557-100000@eryx1.zcu.cz> <3C41F7AD.7040708@cygnus.com> <20020113161243.A1272@nevyn.them.org>
> On Sun, Jan 13, 2002 at 04:10:05PM -0500, Andrew Cagney wrote:
>
>> --- 214,223 ----
>> /* I think the code which prints this will always print it along with
>> the string, so no need to be verbose. */
>> return "?";
>> ! else if ((sig >= TARGET_SIGNAL_FIRST) && (sig <= TARGET_SIGNAL_LAST))
>> ! return signals[sig].name;
>> ! else
>> ! return signals[sig].name;
>> }
>> > /* Given a name, return its signal. */
>
>
> That's probably not what you meant to commit, since both cases are the
> same.
Er, no. Lets try the attached. Turns out that
signals[TARGET_SIGNAL_UNKNOWN].name is NULL.
Andrew
2002-01-13 Andrew Cagney <ac131313@redhat.com>
* signals.c (target_signal_to_name): Rewrite. Only use
signals[].name when in bounds and non-NULL.
Index: signals.c
===================================================================
RCS file: /cvs/src/src/gdb/signals.c,v
retrieving revision 1.2
diff -p -r1.2 signals.c
*** signals.c 2002/01/13 21:11:38 1.2
--- signals.c 2002/01/13 21:51:26
*************** target_signal_to_string (enum target_sig
*** 210,223 ****
char *
target_signal_to_name (enum target_signal sig)
{
! if (sig == TARGET_SIGNAL_UNKNOWN)
! /* I think the code which prints this will always print it along with
! the string, so no need to be verbose. */
! return "?";
! else if ((sig >= TARGET_SIGNAL_FIRST) && (sig <= TARGET_SIGNAL_LAST))
return signals[sig].name;
else
! return signals[sig].name;
}
/* Given a name, return its signal. */
--- 210,222 ----
char *
target_signal_to_name (enum target_signal sig)
{
! if ((sig >= TARGET_SIGNAL_FIRST) && (sig <= TARGET_SIGNAL_LAST)
! && signals[sig].name != NULL)
return signals[sig].name;
else
! /* I think the code which prints this will always print it along
! with the string, so no need to be verbose (very old comment). */
! return "?";
}
/* Given a name, return its signal. */