From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from re-prd-fep-048.btinternet.com (mailomta28-re.btinternet.com [213.120.69.121]) by sourceware.org (Postfix) with ESMTPS id 8891C3857C57 for ; Fri, 21 Aug 2020 15:25:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8891C3857C57 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=dronecode.org.uk Authentication-Results: sourceware.org; spf=none smtp.mailfrom=jon.turney@dronecode.org.uk Received: from re-prd-rgout-004.btmx-prd.synchronoss.net ([10.2.54.7]) by re-prd-fep-048.btinternet.com with ESMTP id <20200821152504.EEFA4701.re-prd-fep-048.btinternet.com@re-prd-rgout-004.btmx-prd.synchronoss.net>; Fri, 21 Aug 2020 16:25:04 +0100 Authentication-Results: btinternet.com; auth=pass (PLAIN) smtp.auth=jonturney@btinternet.com X-Originating-IP: [86.141.130.142] X-OWM-Source-IP: 86.141.130.142 (GB) X-OWM-Env-Sender: jonturney@btinternet.com X-VadeSecure-score: verdict=clean score=0/300, class=clean X-RazorGate-Vade: gggruggvucftvghtrhhoucdtuddrgeduiedrudduvddgjeekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuueftkffvkffujffvgffngfevqffopdfqfgfvnecuuegrihhlohhuthemuceftddunecunecujfgurhepuffvfhfhkffffgggjggtgfesthejredttdefjeenucfhrhhomheplfhonhcuvfhurhhnvgihuceojhhonhdrthhurhhnvgihsegurhhonhgvtghouggvrdhorhhgrdhukheqnecuggftrfgrthhtvghrnhepteelffegteeiudeuteehffevledvffeffeekgffhhfehvdfhgffhteehteelteeknecuffhomhgrihhnpegthihgfihinhdrtghomhenucfkphepkeeirddugedurddufedtrddugedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehhvghloheplgduledvrdduieekrddurdduuddungdpihhnvghtpeekiedrudeguddrudeftddrudegvddpmhgrihhlfhhrohhmpeeojhhonhdrthhurhhnvgihsegurhhonhgvtghouggvrdhorhhgrdhukhequceuqfffjgepkeeukffvoffkoffgpdhrtghpthhtohepoehguggsqdhprghttghhvghssehsohhurhgtvgifrghrvgdrohhrgheqpdhrtghpthhtohepoehsihhmrghrkhesshhimhgrrhhkrdgtrgeq X-RazorGate-Vade-Verdict: clean 0 X-RazorGate-Vade-Classification: clean Received: from [192.168.1.111] (86.141.130.142) by re-prd-rgout-004.btmx-prd.synchronoss.net (5.8.340) (authenticated as jonturney@btinternet.com) id 5ED9C5060CE2FF8B; Fri, 21 Aug 2020 16:25:04 +0100 Subject: Re: [PATCH 1/4] Add sniffer for Cygwin x86_64 core dumps To: gdb-patches@sourceware.org References: <20200812191816.23246-1-jon.turney@dronecode.org.uk> <20200812191816.23246-2-jon.turney@dronecode.org.uk> Cc: Simon Marchi From: Jon Turney Message-ID: <9c6ae1b6-c8b2-6219-1e2a-ed4954350fb1@dronecode.org.uk> Date: Fri, 21 Aug 2020 16:25:02 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00, FORGED_SPF_HELO, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Aug 2020 15:25:07 -0000 On 20/08/2020 23:20, Simon Marchi wrote: > On 2020-08-12 3:18 p.m., Jon Turney wrote: >> Similarly to existing i386_cygwin_core_osabi_sniffer() >> >> gdb/ChangeLog: >> >> 2020-07-01 Jon Turney >> >> * amd64-windows-tdep.c (amd64_cygwin_core_osabi_sniffer): New. >> (_initialize_amd64_windows_tdep): Register amd64_cygwin_core_osabi_sniffer. > > Hi Jon, > > I am trying to test this using these steps: Wow. Thanks for testing. > 1. Write a dummy C program that just sleeps in Cygwin, compile it (gcc test.c -g3 -O0) and run it > 2. Run "dumper" on it The "dumper" currently shipping in x86_64 Cygwin is utterly broken. (See [1] et seq.). If you use "dumper" from the latest snapshot [2], you may have more success [1] https://cygwin.com/git/?p=newlib-cygwin.git;a=commitdiff;h=7dd1b08836e8a7bb37d330995096540afce152a0;hp=38f88601469f4a6ab7cf42e1f076775c99eb17f2 [2] https://cygwin.com/snapshots/ > 3. Load it in GDB (back on my amd64 Linux host) > > I get this in step 3: > > $ ./gdb --data-directory=data-directory -nx -q ~/a.exe > Reading symbols from /home/simark/a.exe... > (gdb) core ~/core.core > BFD: BFD (GNU Binutils) 2.35.50.20200820 internal error, aborting at /home/simark/src/binutils-gdb/bfd/bfd.c:1311 in _bfd_doprnt_scan > > BFD: Please report this bug. > > This happens while BFD encounters an error and tries to print this format string: > > "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %zu" > > _bfd_doprnt_scan aborts because it doesn't like the z length modifier: > > (top-gdb) p ptr[-1] > $2 = 122 'z' > > So there are two issues here: > > 1. The actual error, the note being too small for the name. If I go up in > elfcore_grok_win32pstatus, the name_size doesn't make sense: > > (top-gdb) p name_size > $9 = 4194304 > > whereas the note size makes sense: > > (top-gdb) p note->descsz > $10 = 1276 This should be resolved by using a fixed "dumper". > 2. The internal error from trying to print that error message Clearly, I shouldn't be using '%zu' here, so I'll make a patch to fix that (once I work out what I should be using :) )