From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27092 invoked by alias); 28 Feb 2019 12:52:30 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 26692 invoked by uid 89); 28 Feb 2019 12:52:30 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.6 required=5.0 tests=BAYES_00,BODY_8BITS,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GARBLED_BODY,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=2017-02, 201702, H*RU:sk:broadba, Hx-spam-relays-external:sk:broadba X-HELO: mail-lf1-f68.google.com Received: from mail-lf1-f68.google.com (HELO mail-lf1-f68.google.com) (209.85.167.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 28 Feb 2019 12:52:28 +0000 Received: by mail-lf1-f68.google.com with SMTP id a8so9357105lfi.7 for ; Thu, 28 Feb 2019 04:52:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:autocrypt:subject:message-id:date:user-agent:mime-version; bh=8kIypNxvgHa8nmc38IMgEpfuSDmWKne8ppT6XrWM1H0=; b=UH1ezxWEkklpfOGwVq/WfpF64oLcj2rQupiAMfNq2xNsHa2h8Bc30jki+CjCWkieDz Y5wP5wP93JC4Vd7b2PDOFkp2xhSKVN3ashIWDIbueoYa/zlGwXbQduUSBMXblnV6yxDs g53txKLmmjrT6nXygLd9bpkBERDC2TveGajnPxdvPAzBgtCsunmS2nXd7l5LxD6q1FtT 6VH/ozpOvAAtgpsHapIakJQhAcdD7yynmTRkK9YSNPQ93xHbFgIE/st7SR8wJLdFZc8S DqO31z7uFM2pK2Pf7jt4bp3+cIWAxU3ymDL/FiV6/YL8T+Te0Ps4CoNhBPPSYsZS/TDu GA/w== Return-Path: Received: from [192.168.4.39] (broadband-95-84-200-6.ip.moscow.rt.ru. [95.84.200.6]) by smtp.gmail.com with ESMTPSA id e23sm4102582ljj.3.2019.02.28.04.52.23 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 04:52:23 -0800 (PST) To: gdb-patches@sourceware.org From: LRN Subject: [PATCH] Apply substitute-path to relative filenames as well Message-ID: <5a785bba-7432-f6e0-1089-5d2bdd3450a3@gmail.com> Date: Thu, 28 Feb 2019 12:52:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="vn67TU5XTP09kobpkjLx4RhQNT3N2oDhL" X-IsSubscribed: yes X-SW-Source: 2019-02/txt/msg00563.txt.bz2 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --vn67TU5XTP09kobpkjLx4RhQNT3N2oDhL Content-Type: multipart/mixed; boundary="rjJC4jG2KKaX1poTo5Q0DE6LYfaYrUxzF"; protected-headers="v1" From: LRN To: gdb-patches@sourceware.org Message-ID: <5a785bba-7432-f6e0-1089-5d2bdd3450a3@gmail.com> Subject: [PATCH] Apply substitute-path to relative filenames as well --rjJC4jG2KKaX1poTo5Q0DE6LYfaYrUxzF Content-Type: multipart/mixed; boundary="------------40FC11006DCFFF731F5185F6" Content-Language: en-US This is a multi-part message in MIME format. --------------40FC11006DCFFF731F5185F6 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 2427 The patch is attached. The change itself is similar to https://www.sourceware.org/ml/gdb-patches/2017-02/msg00693.html , but the c= ode is slightly cleaner (at the cost of making the patch larger). Also, as the patch is trivial, so i would expect it to not to require copyr= ight assignment (i do have one, but David Grayson might not have). Here's the copy of the commit message: When source file path is relative to the build directory (which is considered a good practice and is enforced in certain buildsystems, such as meson), gdb only applies substitute-path to the build directory path. Then gdb appends the source file path to the rewritten build directory path, and tries to access that. This fails if either two of the following conditions are true: a) The user didn't specify substitute-path for the build directory. This is highly likely, since path substitution for build directories is not documented anywhere, and since gdb does not tell[0] the user the path to the build directory, just the source file path. b) The source file path changed. This can also easily happen, since a source path that is relative to the build directory can include any number of directory names that are not part of the program source tree (starting with the name of the root directory of the source tree). Gdb will not apply substitute-path to that relative path, thus there is no way for the user to tell gdb about these changes. This commit changes the code to apply substitute-path to all filenames, both relative and absolute. This way it is possible to do things like: set substitute-path ../foobar-1.0 /src/my/foobar-1.0 which is completely in line with the user expectations. This might break unusual cases where build directory path is also relative (is that even possible?) and happens to match the path to the source directory (i.e. happens to match a substitution rule). [0]: There's a "maintenance info symtabs" command that does show the names of the build directories, but normal users are not required to know or use that. --- gdb/source.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) gdb/ChangeLog: 2019-02-28 =D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD =D0=98=D0=B6=D0=B1=D1=83=D0= =BB=D0=B0=D1=82=D0=BE=D0=B2 * source.c (find_and_open_source): Apply substitute-path to all filenames, both absolute and relative --------------40FC11006DCFFF731F5185F6 Content-Type: text/plain; charset=UTF-8; name="0001-Apply-substitute-path-to-relative-filenames-as-well.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Apply-substitute-path-to-relative-filenames-as-well.pat"; filename*1="ch" Content-length: 3900 RnJvbSAyODQzMWNkZjk4ZWM2YzYwNjM3M2ZkMDJjMzZjNTY0MmM0ZjE5NmRm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUQw PUEwPUQxPTgzPUQxPTgxPUQwPUJCPUQwPUIwPUQwPUJEPTIwPUQwPTk4PUQw PUI2PUQwPUIxPz0KID0/VVRGLTg/cT89RDE9ODM9RDA9QkI9RDA9QjA9RDE9 ODI9RDA9QkU9RDA9QjI/PSA8bHJuMTk4NkBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjggRmViIDIwMTkgMTA6MjU6NDEgKzAwMDAKU3ViamVjdDogW1BBVENI XSBBcHBseSBzdWJzdGl0dXRlLXBhdGggdG8gcmVsYXRpdmUgZmlsZW5hbWVz IGFzIHdlbGwKCldoZW4gc291cmNlIGZpbGUgcGF0aCBpcyByZWxhdGl2ZSB0 byB0aGUgYnVpbGQgZGlyZWN0b3J5ICh3aGljaAppcyBjb25zaWRlcmVkIGEg Z29vZCBwcmFjdGljZSBhbmQgaXMgZW5mb3JjZWQgaW4gY2VydGFpbiBidWls ZHN5c3RlbXMsCnN1Y2ggYXMgbWVzb24pLCBnZGIgb25seSBhcHBsaWVzIHN1 YnN0aXR1dGUtcGF0aCB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CnBhdGguIFRo ZW4gZ2RiIGFwcGVuZHMgdGhlIHNvdXJjZSBmaWxlIHBhdGggdG8gdGhlIHJl d3JpdHRlbiBidWlsZApkaXJlY3RvcnkgcGF0aCwgYW5kIHRyaWVzIHRvIGFj Y2VzcyB0aGF0LgoKVGhpcyBmYWlscyBpZiBlaXRoZXIgdHdvIG9mIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdHJ1ZToKYSkgVGhlIHVzZXIgZGlk bid0IHNwZWNpZnkgc3Vic3RpdHV0ZS1wYXRoIGZvciB0aGUgYnVpbGQgZGly ZWN0b3J5LgogICBUaGlzIGlzIGhpZ2hseSBsaWtlbHksIHNpbmNlIHBhdGgg c3Vic3RpdHV0aW9uIGZvciBidWlsZCBkaXJlY3RvcmllcwogICBpcyBub3Qg ZG9jdW1lbnRlZCBhbnl3aGVyZSwgYW5kIHNpbmNlIGdkYiBkb2VzIG5vdCB0 ZWxsWzBdIHRoZSB1c2VyCiAgIHRoZSBwYXRoIHRvIHRoZSBidWlsZCBkaXJl Y3RvcnksIGp1c3QgdGhlIHNvdXJjZSBmaWxlIHBhdGguCmIpIFRoZSBzb3Vy Y2UgZmlsZSBwYXRoIGNoYW5nZWQuCiAgIFRoaXMgY2FuIGFsc28gZWFzaWx5 IGhhcHBlbiwgc2luY2UgYSBzb3VyY2UgcGF0aCB0aGF0IGlzIHJlbGF0aXZl CiAgIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkgY2FuIGluY2x1ZGUgYW55IG51 bWJlciBvZiBkaXJlY3RvcnkgbmFtZXMKICAgdGhhdCBhcmUgbm90IHBhcnQg b2YgdGhlIHByb2dyYW0gc291cmNlIHRyZWUgKHN0YXJ0aW5nIHdpdGggdGhl CiAgIG5hbWUgb2YgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBzb3VyY2Ug dHJlZSkuIEdkYiB3aWxsIG5vdCBhcHBseQogICBzdWJzdGl0dXRlLXBhdGgg dG8gdGhhdCByZWxhdGl2ZSBwYXRoLCB0aHVzIHRoZXJlIGlzIG5vIHdheSBm b3IKICAgdGhlIHVzZXIgdG8gdGVsbCBnZGIgYWJvdXQgdGhlc2UgY2hhbmdl cy4KClRoaXMgY29tbWl0IGNoYW5nZXMgdGhlIGNvZGUgdG8gYXBwbHkgc3Vi c3RpdHV0ZS1wYXRoIHRvIGFsbCBmaWxlbmFtZXMsCmJvdGggcmVsYXRpdmUg YW5kIGFic29sdXRlLiBUaGlzIHdheSBpdCBpcyBwb3NzaWJsZSB0byBkbyB0 aGluZ3MgbGlrZToKCnNldCBzdWJzdGl0dXRlLXBhdGggLi4vZm9vYmFyLTEu MCAvc3JjL215L2Zvb2Jhci0xLjAKCndoaWNoIGlzIGNvbXBsZXRlbHkgaW4g bGluZSB3aXRoIHRoZSB1c2VyIGV4cGVjdGF0aW9ucy4KClRoaXMgbWlnaHQg YnJlYWsgdW51c3VhbCBjYXNlcyB3aGVyZSBidWlsZCBkaXJlY3RvcnkgcGF0 aCBpcyBhbHNvCnJlbGF0aXZlIChpcyB0aGF0IGV2ZW4gcG9zc2libGU/KSBh bmQgaGFwcGVucyB0byBtYXRjaCB0aGUgcGF0aAp0byB0aGUgc291cmNlIGRp cmVjdG9yeSAoaS5lLiBoYXBwZW5zIHRvIG1hdGNoIGEgc3Vic3RpdHV0aW9u IHJ1bGUpLgoKWzBdOiBUaGVyZSdzIGEgIm1haW50ZW5hbmNlIGluZm8gc3lt dGFicyIgY29tbWFuZCB0aGF0IGRvZXMgc2hvdyB0aGUgbmFtZXMKICAgICBv ZiB0aGUgYnVpbGQgZGlyZWN0b3JpZXMsIGJ1dCBub3JtYWwgdXNlcnMgYXJl IG5vdCByZXF1aXJlZCB0bwogICAgIGtub3cgb3IgdXNlIHRoYXQuCi0tLQog Z2RiL3NvdXJjZS5jIHwgMTIgKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2dkYi9zb3VyY2UuYyBiL2dkYi9zb3VyY2UuYwppbmRleCBmOTkyMTVm Li42NzNlYmMzIDEwMDY0NAotLS0gYS9nZGIvc291cmNlLmMKKysrIGIvZ2Ri L3NvdXJjZS5jCkBAIC0xMDI4LDE1ICsxMDI4LDExIEBAIGZpbmRfYW5kX29w ZW5fc291cmNlIChjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICB9CiAKICAg Z2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gcmV3cml0dGVuX2ZpbGVu YW1lOwotICBpZiAoSVNfQUJTT0xVVEVfUEFUSCAoZmlsZW5hbWUpKQotICAg IHsKLSAgICAgIC8qIElmIGZpbGVuYW1lIGlzIGFic29sdXRlIHBhdGgsIHRy eSB0aGUgc291cmNlIHBhdGgKLQkgc3Vic3RpdHV0aW9uIG9uIGl0LiAgKi8K LSAgICAgIHJld3JpdHRlbl9maWxlbmFtZSA9IHJld3JpdGVfc291cmNlX3Bh dGggKGZpbGVuYW1lKTsKIAotICAgICAgaWYgKHJld3JpdHRlbl9maWxlbmFt ZSAhPSBOVUxMKQotCWZpbGVuYW1lID0gcmV3cml0dGVuX2ZpbGVuYW1lLmdl dCAoKTsKLSAgICB9CisgIHJld3JpdHRlbl9maWxlbmFtZSA9IHJld3JpdGVf c291cmNlX3BhdGggKGZpbGVuYW1lKTsKKworICBpZiAocmV3cml0dGVuX2Zp bGVuYW1lICE9IE5VTEwpCisgICAgZmlsZW5hbWUgPSByZXdyaXR0ZW5fZmls ZW5hbWUuZ2V0ICgpOwogCiAgIHJlc3VsdCA9IG9wZW5wIChwYXRoLCBPUEZf U0VBUkNIX0lOX1BBVEggfCBPUEZfUkVUVVJOX1JFQUxQQVRILCBmaWxlbmFt ZSwKIAkJICBPUEVOX01PREUsIGZ1bGxuYW1lKTsKLS0gCjIuNC4wCgo= --------------40FC11006DCFFF731F5185F6-- --rjJC4jG2KKaX1poTo5Q0DE6LYfaYrUxzF-- --vn67TU5XTP09kobpkjLx4RhQNT3N2oDhL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" Content-length: 833 -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE4MWzR43wYaAzEA49ja3pJ2dZunQFAlx32YUACgkQja3pJ2dZ unTD6g//SSpLiYmxqCFFpEfJThW23RC0BxwgVdnYiv3FlzZXcaHYjv4RWMRC/t+J ZR9lXDZTQwik2E/2JXMrZm8b+4gZ1LlMIdSCs8vL328KbpCIn+zPWpPdYIEuMI3F ebkMrDNRXxja69pGggovNbgt6B043H2v1BdRp2STAhw4uQJjTDARjouLngnrOUvA DvnrlT/Cs6ZyVYy94ZFHeRwvlVF9TQrM0lbiUXum6B6QLkLLzeI9sFZ6kK7lfyZH cgk+fbSZ+VjcMzmca6KkMiv7uDcXD1C8YFO8iAOH9lU+wZU0xZTINIOJdXprq6tz zzbS+y7W9xUWXzfHJyLmSxBpX2NiyDfE+LVBqwf0ZhiXniS7PUEAawXMZ+R5j8Uv faT9X/7n37NABTcxQZbJ+HIz8nmwohb4L9zd8I2SJRzrEtalc4YNXlrWEDEL4Pc5 Our7hLlVjTOEEX14HyD+ZfUGHpf34wy21hlFMZENhaLljw5r+jaoxc/44EIPHfBo FdvXg9+9xBq4/IR6Yn6oPqgpUAQD/k1YX+s/6TUq5PfpuFE/WZOG3nQForsaIkSZ l1obsahT1Twysv7IT0IxPspPREwID0RBf6AB/v7nC5zIw6lKOqnJMYmBMSyfB/lA RYoF7sUXIL25SgY8qNGt/xfJzoUM92wF//GRp4QjFX0pPOe3NXU= =c+V6 -----END PGP SIGNATURE----- --vn67TU5XTP09kobpkjLx4RhQNT3N2oDhL--