public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
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

  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).