From: Eli Zaretskii <eliz@gnu.org>
To: Pedro Alves <palves@redhat.com>
Cc: philippe.waroquiers@skynet.be, gdb-patches@sourceware.org
Subject: Re: [RFAv3 2/6] Improve process exit status macros on MinGW
Date: Tue, 17 Dec 2019 17:00:00 -0000 [thread overview]
Message-ID: <835zie51mf.fsf@gnu.org> (raw)
In-Reply-To: <a8d1a153-4d17-9a3c-82bb-389d44d073d4@redhat.com> (message from Pedro Alves on Mon, 27 May 2019 18:33:11 +0100)
> From: Pedro Alves <palves@redhat.com>
> Date: Mon, 27 May 2019 18:33:11 +0100
To recap, back in May Philippe added the 'pipe' command, and we had a
brief discussion regarding the use of WIFEXITED, WIFSIGNALED, and
other related macros from <sys/wait.h>, on MS-Windows. It was decided
back then to leave for later the translation of exit codes returned by
'pipe' in MS-Windows build of GDB.
I've now started to look at this issue, with the intent to provide ext
status to signal conversion for the MS-Windows ports of GDB, and I
have a few questions regarding the details.
In that discussion, Pedro commented on Philippe's proposed patch
(https://sourceware.org/ml/gdb-patches/2019-05/msg00131.html) which
added the definitions for WIF* and WEXIT* macros to gdb_wait.h and
their use in widnows-nat.c. The comments are in
https://sourceware.org/ml/gdb-patches/2019-05/msg00590.html, and go
like this:
> > * common/gdb_wait.h (WIFEXITED, WIFSIGNALED, WEXITSTATUS,
> > WTERMSIG): Define better versions for MinGW.
> > * windows-nat.c (xlate): Uncomment the definition.
> > (windows_status_to_termsig): New function.
>
> windows-nat.c looks like the wrong place to put this.
>
> windows-nat.c is only included in the build if building a native
> debugger. But, you need this functionality on every Windows-hosted build
> of GDB, even cross debuggers. So I think you're breaking the build on
> the Windows-hosted, non-native-debugger case.
>
> E.g., --host=mingw --target=arm-none-eabi.
>
> The right place would be mingw-hdep.c.
I'm okay with doing this in mingw-hdep.c, but I'm a bit confused by
this comment. The encoding of the fatal exception in the exit status
of a program is a feature of the native MS-Windows processes. Does
"running cross-debugger" mentioned above allude to running an
MS-Windows program? If so, which GDB component (that is presumably
not windows-nat.c) is involved in running such cross-debugged programs
and for translating the debug status to the likes of
TARGET_WAITKIND_EXITED? And how does the 'pipe' command support these
cross-debugging use cases (as it uses the 'popen' C library function,
which AFAIU runs natively)?
> I admit to being a bit confused about why we want to do this
> translation for this feature while we don't do it for the exit code
> of inferiors running under gdb, for example. I mean, exit status
> with 0xc0000000 set don't cause $_exitsignal to be set instead of
> $_exitcode.
Yes, we should do this for exit code of inferiors as well.
Native MS-Windows debugging produces the TARGET_WAITKIND_* values in
windows-nat.c, so I think the conversion we are talking about will
have to be done there, perhaps _in_addition_to_ other places? IOW,
the function that performs the conversion can be defined in
mingw-hdep.c, but it will have to be called from windows-nat.c at
least, right? And I'm uncertain what other places will have to call
that conversion function for the use case of running a cross-debugger,
can someone please help me understand that?
TIA
next prev parent reply other threads:[~2019-12-17 17:00 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-04 16:18 [RFAv3 0/6] Implement | (pipe) command Philippe Waroquiers
2019-05-04 16:18 ` [RFAv3 6/6] NEWS and documentation for " Philippe Waroquiers
2019-05-04 16:26 ` Eli Zaretskii
2019-05-04 16:33 ` Eli Zaretskii
2019-05-27 17:51 ` Pedro Alves
2019-05-04 16:18 ` [RFAv3 2/6] Improve process exit status macros on MinGW Philippe Waroquiers
2019-05-27 17:33 ` Pedro Alves
2019-05-27 18:38 ` Eli Zaretskii
2019-05-29 12:38 ` Pedro Alves
2019-05-29 15:03 ` Eli Zaretskii
2019-05-30 10:26 ` Philippe Waroquiers
2019-12-17 17:00 ` Eli Zaretskii [this message]
2019-12-17 17:51 ` Pedro Alves
2019-12-18 17:08 ` Eli Zaretskii
2019-12-18 17:42 ` Pedro Alves
2019-12-18 18:33 ` Eli Zaretskii
2019-12-25 15:57 ` Eli Zaretskii
2020-01-03 19:59 ` Pedro Alves
2020-01-03 20:08 ` Pedro Alves
2020-01-03 20:34 ` Eli Zaretskii
2020-01-06 11:57 ` Pedro Alves
2020-01-06 16:17 ` Eli Zaretskii
2020-01-06 18:51 ` Pedro Alves
2020-01-06 19:26 ` Eli Zaretskii
2020-01-06 18:59 ` Hannes Domani via gdb-patches
2020-01-06 19:34 ` Eli Zaretskii
2020-01-06 19:38 ` Hannes Domani via gdb-patches
2020-01-06 19:55 ` Eli Zaretskii
2020-01-03 17:04 ` Pedro Alves
2019-05-04 16:18 ` [RFAv3 5/6] Test the | (pipe) command Philippe Waroquiers
2019-05-27 17:49 ` Pedro Alves
2019-05-04 16:18 ` [RFAv3 3/6] Add function execute_command_to_ui_file Philippe Waroquiers
2019-05-04 16:18 ` [RFAv3 1/6] Add previous_saved_command_line to allow a command to repeat a previous command Philippe Waroquiers
2019-05-27 17:29 ` Pedro Alves
2019-05-04 16:18 ` [RFAv3 4/6] Implement | (pipe) command Philippe Waroquiers
2019-05-27 17:48 ` Pedro Alves
2019-05-27 17:55 ` Pedro Alves
[not found] <271718487.11947642.1578332826544.ref@mail.yahoo.com>
2020-01-06 17:47 ` [RFAv3 2/6] Improve process exit status macros on MinGW Hannes Domani via gdb-patches
2020-01-06 18:23 ` Eli Zaretskii
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=835zie51mf.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=philippe.waroquiers@skynet.be \
/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