From patchwork Tue May 9 00:32:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 91322 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2525615vqo; Mon, 8 May 2023 17:33:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6Ce+pUZxjR8cIzEGZcpy/9kBdFlPPhJD5E0w0j6ejdLZqOhOB1ISt/7z02H+hqfZ4J8jcJ X-Received: by 2002:a17:907:1690:b0:94f:6316:ce8d with SMTP id hc16-20020a170907169000b0094f6316ce8dmr11996376ejc.34.1683592387197; Mon, 08 May 2023 17:33:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683592387; cv=none; d=google.com; s=arc-20160816; b=IGRn2kCXZHOnrYS5h3GROMi90trlvSsUO/biiQ6AEzSmyEY6SL/xTw/5goUAXL2rRq vb5gPxg2YxEiSh1MqX60iCmeG9nvK0bKA5vUg1NStvORIRc2NRPRtXHsnietYiRifCHZ QkgQVhIvcKYFM++NS5ayajboXCAwzrQICJq+0joq++3m8ppQaIV/OUzCLeT/8Po5gTnw MvCHSvID7YyS5nVEsOZHgJOGhRCUOMcGI357FnUEW48DXYsSLwX8Z5/d4hoT24qX0TdL fhYG2rZaS9+R1MHMAnana/Hoa9tM8GW+dnjAbCqkFQOmdmdIyyLvmBi9DxzzhGY59RF9 mr9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :dmarc-filter:delivered-to; bh=kSNxOlE9sUxslC50lhsyp4DPybjo6Cmjs4WgG9sEUAo=; b=EmRtwEGZMPfYyk+IXAZoqNeDIwZDfOKjOIeZA2CKACyRZ9DdIk0WAiEMzoUXyXO1PL qSWddEF4M+7JZv1W3Y0hxkSRUK2AbWHvvU+p7ds5Rh4ITvl7FsAcSM9pV06psyA9/d66 Cntm3LRGgaBNKE0X3vC0qENbEJWIdd/eQUq3vRhDI/WuCjq5/y/LacSnGUZxZgrtjz1z RdGpztMXHHlSMqi7OX1qMhh/ix3Ct+8ur1sXo/P/vPC6NWbawP0yrVk54zGlIpnAw+R0 MPRwHzuLb7pWjefPRS285TIxDcDpnaGMf7ASZumWVLYWRt4ILd4r7b+CEWEXpxhsZOpa AFJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20221208 header.b=eEZFCJYF; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id d4-20020a1709064c4400b0094ed5083927si794929ejw.426.2023.05.08.17.33.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 May 2023 17:33:07 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20221208 header.b=eEZFCJYF; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 084AD385700B for ; Tue, 9 May 2023 00:33:04 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by sourceware.org (Postfix) with ESMTPS id AE4043858C50 for ; Tue, 9 May 2023 00:32:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AE4043858C50 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3f315712406so188968435e9.0 for ; Mon, 08 May 2023 17:32:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683592375; x=1686184375; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=kSNxOlE9sUxslC50lhsyp4DPybjo6Cmjs4WgG9sEUAo=; b=eEZFCJYF5fx4qcWTh+qpJqVSnWs5AQ0IUcjnJ1QWcwt8aR/ZoIo1HJsvJyi9g48cq0 GpYl+3XWfNzXMOGxNMnasxCI8JvrLSthPhKUcUUyvMP1vZsC76A1LJwagy1Wp/3mtda1 KAI60o3KSa+wCo8c2Pm7ppJOcT2Y0zwOpcTsIEwh9zlZe1T5QrI9QsoqCPU4LP7dmuAT JIA5XpIllMw2gi8nFU4DmPbYZYw1hJL2SzeWVPDmqD6+y4UIBagH4wFyUW6gew/VoaDv oUEuqwRd5qInuF1Lf17rJXc2YaOVpoe6d3EJeBGUqsEkakPJJU8sIxPifUh0/VErYGLi UKTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683592375; x=1686184375; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kSNxOlE9sUxslC50lhsyp4DPybjo6Cmjs4WgG9sEUAo=; b=YOH8Vue197s55G/wwQpkAvrHPbRIBUo2Hbfj/gm/17HNACmNqEJjLDyNSAJb/GICwj D5hwxpFRhm3IIofHIBSYIqIlge6IKgJlm99FBQm+hzMuCmxiXvdoLqg+jMDF5JEJBjdS K9aESFUEywI5wMMjNHHt8RMcHb4pxpzNf7zcPvv5c4bTItJ/B3f13eadNF4D2PxNaJGv rJXUCVtanKxa5aXgNcE7vCTuDhPvC13YDcz89MvEzhHhAz/LuO13mSrb6Codo0mrclql /ayjSfBfJBuTLWLg39rwD1ywMCIXNbevtU0zKcvkClFyObxo7VNlBFa9VCjq29Qeltuk uKJA== X-Gm-Message-State: AC+VfDy9MyEskoeQ3PZbmXOxzZBOat1PQGeXMdk1bR3bSsNpzT31XmGR uumGAgXYKRfkG2donOij/hTyEJ3z29M= X-Received: by 2002:a5d:4008:0:b0:306:2ba4:909d with SMTP id n8-20020a5d4008000000b003062ba4909dmr7047452wrp.11.1683592375107; Mon, 08 May 2023 17:32:55 -0700 (PDT) Received: from localhost.localdomain ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id x14-20020adfec0e000000b002ca864b807csm12770938wrn.0.2023.05.08.17.32.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 May 2023 17:32:54 -0700 (PDT) From: Mark Harmstone To: binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 1/2] pdb: Allow loading by gdb Date: Tue, 9 May 2023 01:32:46 +0100 Message-Id: <20230509003247.24156-1-mark@harmstone.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765374571281084648?= X-GMAIL-MSGID: =?utf-8?q?1765374571281084648?= These are the first patches adding support to allow GDB to load Microsoft's PDB debugging files. Add a new bfd_flavour value, and expose PDB files as objects, so that they get accepted by add-symbol-file. --- bfd/bfd-in2.h | 3 ++- bfd/pdb.c | 6 ++++-- bfd/targets.c | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 7be18db20a8..e9b3e8e9a21 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -7410,7 +7410,8 @@ enum bfd_flavour bfd_target_mach_o_flavour, bfd_target_pef_flavour, bfd_target_pef_xlib_flavour, - bfd_target_sym_flavour + bfd_target_sym_flavour, + bfd_target_pdb_flavour }; enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; diff --git a/bfd/pdb.c b/bfd/pdb.c index 7fefd8140fa..c48fb459b9f 100644 --- a/bfd/pdb.c +++ b/bfd/pdb.c @@ -62,6 +62,8 @@ pdb_archive_p (bfd *abfd) return _bfd_no_cleanup; } +#define pdb_object_p pdb_archive_p + static bfd * pdb_get_elt_at_index (bfd *abfd, symindex sym_index) { @@ -774,7 +776,7 @@ pdb_write_contents (bfd *abfd) const bfd_target pdb_vec = { "pdb", - bfd_target_unknown_flavour, + bfd_target_pdb_flavour, BFD_ENDIAN_LITTLE, /* target byte order */ BFD_ENDIAN_LITTLE, /* target headers byte order */ 0, /* object flags */ @@ -793,7 +795,7 @@ const bfd_target pdb_vec = { /* bfd_check_format */ _bfd_dummy_target, - _bfd_dummy_target, + pdb_object_p, pdb_archive_p, _bfd_dummy_target }, diff --git a/bfd/targets.c b/bfd/targets.c index 3dbcd088966..a36e6f0f439 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -169,7 +169,8 @@ EXTERNAL . bfd_target_mach_o_flavour, . bfd_target_pef_flavour, . bfd_target_pef_xlib_flavour, -. bfd_target_sym_flavour +. bfd_target_sym_flavour, +. bfd_target_pdb_flavour .}; . .enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; @@ -1859,6 +1860,7 @@ bfd_flavour_name (enum bfd_flavour flavour) case bfd_target_pef_flavour: return "PEF"; case bfd_target_pef_xlib_flavour: return "PEF_XLIB"; case bfd_target_sym_flavour: return "SYM"; + case bfd_target_pdb_flavour: return "PDB"; /* There is no "default" case here so that -Wswitch (part of -Wall) catches missing entries. */ }