From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id AE763386EC33 for ; Mon, 24 Aug 2020 15:47:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org AE763386EC33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark@simark.ca Received: from [10.0.0.11] (173-246-6-90.qc.cable.ebox.net [173.246.6.90]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id B720E1E009; Mon, 24 Aug 2020 11:47:26 -0400 (EDT) Subject: Re: [PATCH 1/4] Add sniffer for Cygwin x86_64 core dumps To: Jon Turney Cc: gdb-patches@sourceware.org References: <20200812191816.23246-1-jon.turney@dronecode.org.uk> <20200812191816.23246-2-jon.turney@dronecode.org.uk> <9c6ae1b6-c8b2-6219-1e2a-ed4954350fb1@dronecode.org.uk> <78accded-bb48-8d01-4feb-9d90002d5935@dronecode.org.uk> <83585eda-b7ec-5735-d03e-d07ed7bcb3fe@simark.ca> From: Simon Marchi Message-ID: <21fa41cf-ca6c-061e-2036-07c283313a41@simark.ca> Date: Mon, 24 Aug 2020 11:47:26 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: fr Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_PASS, SPF_PASS, 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: Mon, 24 Aug 2020 15:47:28 -0000 On 2020-08-22 3:52 p.m., Jon Turney wrote: > On 22/08/2020 20:41, Simon Marchi wrote: >> On 2020-08-21 12:28 p.m., Jon Turney wrote: >>> On 21/08/2020 17:22, Simon Marchi wrote: >>>> On 2020-08-21 11:25 a.m., Jon Turney wrote: >>>>> 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/ >>>> >>>> Ok, thanks for the tip. I'll give it a try with a snapshot. >>>> >>>> Do I just extract cygwin-20200821.tar.xz into my current Cygwin installation to overwrite >>>> the corresponding files? If I want to revert to the stable versions, how can I do that? >>> >>> You should be able to just extract the dumper.exe from that archive, and >>> use it. That's what I would suggest. >> >> Hmm, just tried that, now running "dumper" does nothing: >> >> Baube@DESKTOP-42816MD ~ >> $ dumper >> >> Baube@DESKTOP-42816MD ~ >> $ echo $? >> 127 > > Hmmm. This often means the executable can't be started due to problems > loading DLLs. > > If you want to pursue this further, running under cygwin's strace (e.g. > 'strace dumper') might shed more light. Ahh, I downloaded the x86 version of the snapshot instead of the x86-64! When using dumper.exe from the x86-64, it works. I that dumper.exe from the snapshot also runs much faster than the original dumper.exe, don't know if that's expected. I now get this: $ ./gdb -q --data-directory=data-directory ~/a.exe -ex "core ~/core.core" Reading symbols from /home/simark/a.exe... warning: core file may not match specified executable file. [New process 6408] [New process 6504] [New process 904] [New process 5068] [New process 4892] #0 0x00007ff92bba01b4 in ?? () [Current thread is 1 (process 6408)] (gdb) bt #0 0x00007ff92bba01b4 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) Since I just copied my binary and core out of Cygwin, and the program was stopped somewhere under sleep(), it's perhaps expected that GDB has trouble unwinding from system libraries it doesn't have access to. Simon