From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sa-prd-fep-045.btinternet.com (mailomta26-sa.btinternet.com [213.120.69.32]) by sourceware.org (Postfix) with ESMTPS id C599F3857007 for ; Wed, 1 Jul 2020 21:33:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C599F3857007 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 sa-prd-rgout-001.btmx-prd.synchronoss.net ([10.2.38.4]) by sa-prd-fep-045.btinternet.com with ESMTP id <20200701213349.CNNO4112.sa-prd-fep-045.btinternet.com@sa-prd-rgout-001.btmx-prd.synchronoss.net>; Wed, 1 Jul 2020 22:33:49 +0100 Authentication-Results: btinternet.com; none X-Originating-IP: [31.51.206.31] X-OWM-Source-IP: 31.51.206.31 (GB) X-OWM-Env-Sender: jonturney@btinternet.com X-VadeSecure-score: verdict=clean score=0/300, class=clean X-RazorGate-Vade: gggruggvucftvghtrhhoucdtuddrgeduiedrtddvgdduieehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuueftkffvkffujffvgffngfevqffopdfqfgfvnecuuegrihhlohhuthemuceftddunecunecujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeflohhnucfvuhhrnhgvhicuoehjohhnrdhtuhhrnhgvhiesughrohhnvggtohguvgdrohhrghdruhhkqeenucggtffrrghtthgvrhhnpeefieduveehgfffffeuueehleefgeevfedvffeljeefheduteelteelvdettefhvdenucfkphepfedurdehuddrvddtiedrfedunecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehhvghloheplhhotggrlhhhohhsthdrlhhotggrlhguohhmrghinhdpihhnvghtpeefuddrhedurddvtdeirdefuddpmhgrihhlfhhrohhmpeeojhhonhdrthhurhhnvgihsegurhhonhgvtghouggvrdhorhhgrdhukheqpdhrtghpthhtohepoehguggsqdhprghttghhvghssehsohhurhgtvgifrghrvgdrohhrgheqpdhrtghpthhtohepoehjohhnrdhtuhhrnhgvhiesughrohhnvggtohguvgdrohhrghdruhhkqe X-RazorGate-Vade-Verdict: clean 0 X-RazorGate-Vade-Classification: clean Received: from localhost.localdomain (31.51.206.31) by sa-prd-rgout-001.btmx-prd.synchronoss.net (5.8.340) (authenticated as jonturney@btinternet.com) id 5ED99EC904C005EE; Wed, 1 Jul 2020 22:33:49 +0100 From: Jon Turney To: gdb-patches@sourceware.org Cc: Jon Turney Subject: [PATCH 4/7] Add sniffer for Cygwin x86_64 core dumps Date: Wed, 1 Jul 2020 22:32:22 +0100 Message-Id: <20200701213225.14144-5-jon.turney@dronecode.org.uk> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200701213225.14144-1-jon.turney@dronecode.org.uk> References: <20200701213225.14144-1-jon.turney@dronecode.org.uk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, 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: Wed, 01 Jul 2020 21:33:52 -0000 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. --- gdb/ChangeLog | 5 +++++ gdb/amd64-windows-tdep.c | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c index 487dfd45fc7..e55d021b6c0 100644 --- a/gdb/amd64-windows-tdep.c +++ b/gdb/amd64-windows-tdep.c @@ -42,6 +42,8 @@ static int amd64_windows_dummy_call_integer_regs[] = AMD64_R9_REGNUM /* %r9 */ }; +#define AMD64_WINDOWS_SIZEOF_GREGSET 1232 + /* Return nonzero if an argument of type TYPE should be passed via one of the integer registers. */ @@ -1276,6 +1278,24 @@ amd64_windows_osabi_sniffer (bfd *abfd) return GDB_OSABI_WINDOWS; } +static enum gdb_osabi +amd64_cygwin_core_osabi_sniffer (bfd *abfd) +{ + const char *target_name = bfd_get_target (abfd); + + /* Cygwin uses elf core dumps. Do not claim all ELF executables, + check whether there is a .reg section of proper size. */ + if (strcmp (target_name, "elf64-x86-64") == 0) + { + asection *section = bfd_get_section_by_name (abfd, ".reg"); + if (section != nullptr + && bfd_section_size (section) == AMD64_WINDOWS_SIZEOF_GREGSET) + return GDB_OSABI_CYGWIN; + } + + return GDB_OSABI_UNKNOWN; +} + void _initialize_amd64_windows_tdep (); void _initialize_amd64_windows_tdep () @@ -1287,4 +1307,9 @@ _initialize_amd64_windows_tdep () gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour, amd64_windows_osabi_sniffer); + + /* Cygwin uses elf core dumps. */ + gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour, + amd64_cygwin_core_osabi_sniffer); + } -- 2.27.0