Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi via Gdb-patches <gdb-patches@sourceware.org>
To: John Baldwin <jhb@FreeBSD.org>, gdb-patches@sourceware.org
Subject: Re: [PATCH] Report additional details for signals received on FreeBSD.
Date: Mon, 31 May 2021 20:49:10 -0400	[thread overview]
Message-ID: <ef8f5255-3d66-0c02-4bd0-094b3094e2b9@polymtl.ca> (raw)
In-Reply-To: <46124956-89f0-4da0-00cd-476584b50e98@FreeBSD.org>

On 2021-05-31 12:33 p.m., John Baldwin wrote:
> On 5/31/21 9:29 AM, John Baldwin wrote:
>> Provide a description for si_code values as a sigcode-meaning field.
>> For signals raised by a system call, provide the pid and user ID of
>> the sending process.  For signals raised by a POSIX timer exparation,
>> provide the id of the timer.  For signals raised by a POSIX message
>> queue, provide the id of the message queue.  For SIGCHLD provide the
>> pid and user ID of the child process along with the exit status or
>> relevant signal number.
>>
>> gdb/ChangeLog:
>>
>>     * fbsd-tdep.c (fbsd_signal_cause, fbsd_report_signal_info): New.
>>     (fbsd_init_abi): Use fbsd_report_signal_info as gdbarch
>>     report_signal_info method.
>> ---
>>   gdb/ChangeLog   |   6 ++
>>   gdb/fbsd-tdep.c | 272 ++++++++++++++++++++++++++++++++++++++++++++++++
>>   2 files changed, 278 insertions(+)
>>
>> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
>> index b0f448a35e..0f5ec65680 100644
>> --- a/gdb/ChangeLog
>> +++ b/gdb/ChangeLog
>> @@ -1,3 +1,9 @@
>> +2021-05-30  John Baldwin  <jhb@FreeBSD.org>
>> +
>> +    * fbsd-tdep.c (fbsd_signal_cause, fbsd_report_signal_info): New.
>> +    (fbsd_init_abi): Use fbsd_report_signal_info as gdbarch
>> +    report_signal_info method.
>> +
>>   2021-05-30  John Baldwin  <jhb@FreeBSD.org>
>>         * infrun.c (handle_inferior_event): Only call
>> diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
>> index 6cab31dde8..3fe4c5c595 100644
>> --- a/gdb/fbsd-tdep.c
>> +++ b/gdb/fbsd-tdep.c
>> @@ -75,6 +75,63 @@ enum
>>       FREEBSD_SIGRTMAX = 126,
>>     };
>>   +/* Constants for values of si_code as defined in FreeBSD's
>> +   <sys/signal.h>.  */
>> +
>> +#define    FBSD_SI_USER        0x10001
>> +#define    FBSD_SI_QUEUE        0x10002
>> +#define    FBSD_SI_TIMER        0x10003
>> +#define    FBSD_SI_ASYNCIO        0x10004
>> +#define    FBSD_SI_MESGQ        0x10005
>> +#define    FBSD_SI_KERNEL        0x10006
>> +#define    FBSD_SI_LWP        0x10007
>> +
>> +#define    FBSD_ILL_ILLOPC        1
>> +#define    FBSD_ILL_ILLOPN        2
>> +#define    FBSD_ILL_ILLADR        3
>> +#define    FBSD_ILL_ILLTRP        4
>> +#define    FBSD_ILL_PRVOPC        5
>> +#define    FBSD_ILL_PRVREG        6
>> +#define    FBSD_ILL_COPROC        7
>> +#define    FBSD_ILL_BADSTK        8
>> +
>> +#define    FBSD_BUS_ADRALN        1
>> +#define    FBSD_BUS_ADRERR        2
>> +#define    FBSD_BUS_OBJERR        3
>> +#define    FBSD_BUS_OOMERR        100
>> +
>> +#define    FBSD_SEGV_MAPERR    1
>> +#define    FBSD_SEGV_ACCERR    2
>> +#define    FBSD_SEGV_PKUERR    100
>> +
>> +#define    FBSD_FPE_INTOVF        1
>> +#define    FBSD_FPE_INTDIV        2
>> +#define    FBSD_FPE_FLTDIV        3
>> +#define    FBSD_FPE_FLTOVF        4
>> +#define    FBSD_FPE_FLTUND        5
>> +#define    FBSD_FPE_FLTRES        6
>> +#define    FBSD_FPE_FLTINV        7
>> +#define    FBSD_FPE_FLTSUB        8
>> +
>> +#define    FBSD_TRAP_BRKPT        1
>> +#define    FBSD_TRAP_TRACE        2
>> +#define    FBSD_TRAP_DTRACE    3
>> +#define    FBSD_TRAP_CAP        4
>> +
>> +#define    FBSD_CLD_EXITED        1
>> +#define    FBSD_CLD_KILLED        2
>> +#define    FBSD_CLD_DUMPED        3
>> +#define    FBSD_CLD_TRAPPED    4
>> +#define    FBSD_CLD_STOPPED    5
>> +#define    FBSD_CLD_CONTINUED    6
>> +
>> +#define    FBSD_POLL_IN        1
>> +#define    FBSD_POLL_OUT        2
>> +#define    FBSD_POLL_MSG        3
>> +#define    FBSD_POLL_ERR        4
>> +#define    FBSD_POLL_PRI        5
>> +#define    FBSD_POLL_HUP        6
> 
> Do I need to list all of these new #define's individually in the changelog
> or is there a more concise way to list them?

I don't really have an opinion.  But you can probably automate a bit of
it with grep / sed.

In any case the patch LGTM.  It would be nice if you could include an
example output for one of the cases, to get an idea of the user-visible
improvement.

Simon

  reply	other threads:[~2021-06-01  0:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-31 16:29 John Baldwin
2021-05-31 16:33 ` John Baldwin
2021-06-01  0:49   ` Simon Marchi via Gdb-patches [this message]
2021-06-03 17:01     ` John Baldwin
2021-06-03 17:06       ` Simon Marchi via Gdb-patches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ef8f5255-3d66-0c02-4bd0-094b3094e2b9@polymtl.ca \
    --to=gdb-patches@sourceware.org \
    --cc=jhb@FreeBSD.org \
    --cc=simon.marchi@polymtl.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox