From: Jon Turney <jon.turney@dronecode.org.uk>
To: The Cygwin Mailing List <cygwin@cygwin.com>
Cc: Brian.Inglis@SystematicSw.ab.ca
Subject: Re: assert creates unusable core dump on current stable Cygwin release
Date: Sun, 13 Oct 2019 16:27:00 -0000 [thread overview]
Message-ID: <244f3cd4-59b5-e28a-cd9c-e23f6c259f59@dronecode.org.uk> (raw)
In-Reply-To: <380e89cb-4e31-4af2-40ca-c143e6622424@SystematicSw.ab.ca>
On 10/10/2019 23:20, Brian Inglis wrote:
> On 2019-10-10 14:57, Csaba Raduly wrote:
>> On Thu, Oct 10, 2019 at 9:19 PM Jon Turney wrote:
>>> (and I guess this patch is not acceptable as-is, as it looks like it
>>> would break x86)
>> That was my reaction too.
>
> Obviously there would have to be some arch dependent conditional changes, but I
You could do that. Then at least we'd have something to test. It might
even 'just work'.
> was hoping that someone with a clue about libbfd, could provide some hints as to
> where else to look for more info on what other changes might be required, or
> confirmation that this is object oriented enough to mainly just work with some
> additional tweaks.
I don't think the person who has an in-depth knowledge of bfd and is
interested in this issue exists.
FWIW, as I wrote previously, the difficulties I would anticipate would
be in the direction of size differences in the thread status information
etc., rather than using bfd to write the memory image.
> I also found out, and found a mailing list post that confirmed, that gdb gcore
> also does not work to generate a core image on Windows, as that was my next
> place to look.
Again, there's no such thing as a "Windows core file" (*)
There's this special thing that Cygwin's dumper writes which is an ELF
container for the process memory image, with NT_WIN32PSTATUS ELF notes
which contain Win32 API thread status structures.
(*) well, there are Windows minidumps, and it would perhaps be
conceptually simpler if this was implemented using those, but getting
gdb to read those would be a major project.
> So it looks like gdb gcore for x86 could be implemented by adding the dumper code.
Yes. I'm not sure that adds a huge amount of value, though, as we
already have a working dumper for x86.
> The question is where to ask or look to figure out what Windows x86_64 needs
> over what Windows x86 needs, and add that to both gdb gcore and dumper, as gdb
> seems to handle debugging and debuginfo fine.
You can ask here, or on the cygwin-developers list, or on IRC.
But if you're just asking questions, with no intention of actually doing
the work, that would just be a waste of everyone's time. :)
I'd suggest you start by looking at elfcore_grok_win32pstatus() in
libbfd, and comparing that with the ELF notes that dumper.cc writes,
also specifically looking for assumptions about sizes which might be
different for x86 and x86_64.
Next you'd want to look at i386-cygwin-tdep.c in gdb, and how that
handles the '.reg' and '.module' pseudo-sections that are created by
that when reading the core dump.
> If this could be derived from say, Cygwin ld libbfd calls, or the diffs between
> x86 and x86_64 ld.bfd calls, or nm, objcopy, objdump etc. diffs, I could look at
> doing that.
> I'm not sure I'd want to have to understand in detail how Windows puts its exes
> together to get started.
I don't think any knowledge of PE/COFF executables is needed to do this
work (since, again, the "core dump" uses a ELF container).
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
next prev parent reply other threads:[~2019-10-13 16:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-09 7:16 assert does not show output in cygwin test build Biswapriyo Nath
2019-10-09 10:03 ` Takashi Yano
2019-10-09 10:39 ` Pavel Fedin
2019-10-09 10:54 ` Takashi Yano
2019-10-09 11:27 ` Pavel Fedin
2019-10-09 12:39 ` Biswapriyo Nath
2019-10-09 15:31 ` assert creates unusable core dump on current stable Cygwin release Brian Inglis
2019-10-09 17:10 ` Jon Turney
2019-10-09 21:28 ` Brian Inglis
2019-10-10 19:19 ` Jon Turney
2019-10-10 20:57 ` Csaba Raduly
2019-10-10 22:20 ` Brian Inglis
2019-10-13 16:27 ` Jon Turney [this message]
2019-10-13 18:14 ` Brian Inglis
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=244f3cd4-59b5-e28a-cd9c-e23f6c259f59@dronecode.org.uk \
--to=jon.turney@dronecode.org.uk \
--cc=Brian.Inglis@SystematicSw.ab.ca \
--cc=cygwin@cygwin.com \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).