From patchwork Thu Oct 19 14:10:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Gulick X-Patchwork-Id: 23689 Received: (qmail 130018 invoked by alias); 19 Oct 2017 14:10:41 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 130006 invoked by uid 89); 19 Oct 2017 14:10:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:NAM03-B, H*r:104.47.42, states X-HELO: NAM03-BY2-obe.outbound.protection.outlook.com Received: from mail-by2nam03on0072.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) (104.47.42.72) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Oct 2017 14:10:32 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Mike.Gulick@mathworks.com; Received: from [172.28.194.135] (144.212.3.4) by BLUPR0501MB2036.namprd05.prod.outlook.com (10.164.23.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.156.4; Thu, 19 Oct 2017 14:10:29 +0000 Message-ID: <59E8B251.4050100@mathworks.com> Date: Thu, 19 Oct 2017 10:10:25 -0400 From: Mike Gulick User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: [RFC][PATCH] fix gdb segv when objfile can't be opened X-ClientProxiedBy: DM5PR12CA0012.namprd12.prod.outlook.com (10.172.32.150) To BLUPR0501MB2036.namprd05.prod.outlook.com (10.164.23.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 34bae6e9-f432-4217-6ee3-08d516fb27a9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BLUPR0501MB2036; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0501MB2036; 3:r8aoyP67Vv24G6uREnT0suISzYY08XPbTFPDmDNlo/4kAfDeb2jnvYgOQ03m5bL18gt149n+QWxQ7s6Z1KEVTvPNb4rraT8ZAka2d7rEzyuO4h0kz0/mJcPXFwZKrny4NwX2SIQPHwXxDTld32WU2GZY5K3amkKz5tmQE76GO2rgeaMBDqYxFUE+bsUfVtKAE9RUFRgyev6ZHJfWca351JMhHkQjK11RnJsrqXclbWeu7sGcsbpwE16zABBi9FQ4; 25:DjWJSFc4TK+mm41pAvLIiGG+9fpzJVLrKePISOI/UCzknbsyS3UYECFHk9Scrw9CBcUacAo44alZGDc87zp94vbQFhqV5eQF/doLV6T7GA2bbhKlRejwGAsdAr6kwHyiJJ82PMYc5FLP9/qw8QTgvB3HW2oil/99gJO3LIIPWGQVLbjjolvlsdiiX0zpFYn7I58s6h2hptZdE/AkJ4i8uOa81EHwQdUazsAP5HqPbVDi79bSUbUoTH1DkIW3XuYyHDllnvk112BcGW67cjV6HWgNx8fPaWz2wYQI9mbaHolR1Hzk0LZg5J+48CMlRBoJWA46i2xLfPjumSugWsBTlQ==; 31:fQmS2sj7vv55opDQU40HJ88u4NAtLUdoXsm1usY2heZhxV2FEGrf823M6+RLjk3UrWAJWkCbRmPYrC+wbTDeGV37Ct7I4J5jeLz5k0e7afA5txEJtVqn4ZSzAUfYNNnDniKxWBpaFA25mJPa6EwX3oifCUx4tgZ6JhH4fv/VN9UyO8YnhNP25fRC67kAK6uupMbGlZ48EIZ7Grp5TuRCWJqGw7MoPW/HTjQ6JWi4h7w= X-MS-TrafficTypeDiagnostic: BLUPR0501MB2036: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0501MB2036; 20:9dTigE6WuLLPCXp7OQkPHnyW3zghiS4lcQ4TiXHdIkluU9ybvrS1yA5aZGMSTlrgHZCanXqrXGAYD7QkiQpdCV2yE+otblkYTCJhmOT/IhV8OT1alWIQCHMR2KGu5riNg+0tOBJkL4PkruTKFPZmaqBFKGCHCT4a0Bw5MMuScbe9GIznHUm56FX0OWEP322T4zDDnsYu7hzkfQvDTRS6ghogscgL9YD3b1xNSSQS5vDq1Q4cfEQAgouAEvdzoPBtzlyrKcQAS2v+qxxH2YfFyG6QH+Fqs+ooBztKi3iOxscezCbfctTmIuz17S+BhS+vMK+2RKS1lKvtyuARy5esMFxXJ6VkPLvpl4s8BtXV2Kb9HCDPS8Z9XAoINi6zT1sYe3FtLXqxq7iupDPfmtlLSXdVOOLIouWurt1JG4xCpSXngegRxaUCGnzaIYobw03NlaQzQHeqcYGpECSRBf7inkq/BX0a2RumGkDNlIOqG95QqJpJGlWTQKm1eMN0AfNT; 4:DxdwuVJ5g2X3gpKdQjAClFlh7aYhZiwPPB23H/tIvqwnOd5f9LUZ4InoVKzWwLl84uly3leXmB1qVUyikgmUTTIOq2+5UrGPROFqSdUniX5KTvSZoT2EetMQrg7/evfcBn8G3H1NbQYRbQmlyCffhNU78a6Fb/JYipo4Guc3j3+37V4CqcUK2uEXN4w1hI62mSiP2Wi86qjOadsAFKVGza8iTtZTAfGjNqE8nw6uFwlB6HtcjmAPjC+X1/t+q3lM X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0501MB2036; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0501MB2036; X-Forefront-PRVS: 0465429B7F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(6009001)(346002)(376002)(189002)(199003)(86362001)(6666003)(6916009)(53936002)(64126003)(105586002)(50466002)(36756003)(2351001)(65816999)(54356999)(50986999)(106356001)(2361001)(87266999)(2906002)(97736004)(33656002)(59896002)(316002)(58126008)(16576012)(66066001)(101416001)(77096006)(6486002)(68736007)(16526018)(47776003)(90366009)(83506001)(8936002)(8676002)(5660300001)(305945005)(72206003)(230700001)(189998001)(3846002)(6116002)(25786009)(7736002)(81156014)(80316001)(23676002)(478600001)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0501MB2036; H:[172.28.194.135]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mathworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjA1MDFNQjIwMzY7MjM6bDhKYkZVblA4LzkrVTZieWhaQyt6cnJP?= =?utf-8?B?QXV0SWFVdkozTFh3WWtsTE1DRVJrY21icDZ6WmxIRmk5ejR4eDdCWmRGRDBN?= =?utf-8?B?bFVTSDNMblFITG1PLzlwUU12cnVha3c5bW11L3laWUxxTlJVWlAxeUNzdWgw?= =?utf-8?B?ZWtZWlk4S0JjYlZvaEFIUUt5R3NhTnZNZFFPVTFKdEJMTDhySG1BNjRRYkRW?= =?utf-8?B?WG9DczBOcDJEOXdscG9qVWRLZUtzUVJCL0Y5TzZaOVRrMmZVbGVYZ3hwdHUw?= =?utf-8?B?a0U0RWZ2OTVhT3RXTkxJbTVjRzNiaFRBRW4zTUxrekg5emNkQmpwbWhVU2Q2?= =?utf-8?B?dSs2Q1BTVWZQR2hsYWh1c1l5R2UzVzQ3ak5zQ3VIUUpiUlRvNU5yaEl4M2pJ?= =?utf-8?B?b3dHVFNnZnM4WE9HTWE3R1Z2cXoxQkR0R3BDWTdZVDBpa0todEJCVkdXS3V3?= =?utf-8?B?TXNBTlRRZ044b095d2ZFSFhMdHBwZXBvd3lCeXlQcm04bHk3WTBwTHFzT3FI?= =?utf-8?B?dWcwUGxlZnl1Tk1tZDhlcm4xUHd4dTNSTWpNeWRLRDIvUEVEcythTkVxMzA5?= =?utf-8?B?Qm90ZlRvQW91UnUvR1VuN0ZydlVQUmtTRzFlTWV4djFpLzJBQnhOQi9Ea3FK?= =?utf-8?B?S00vak5ySll0aktjMVlNS29hWjFodS9kUjVIQlAzWmVmczNQTm0xdC9WazNZ?= =?utf-8?B?VVdLUitKQmZzZjExeFMzS2dDcG5EY2tuWkxpdW13N0RGcGtjanJOYnlHN2Rk?= =?utf-8?B?SW4xdFYxSzFPbnpxZG8yTlFRbTBOZXhZbXFtaWtOWHczVFllRW9OOG9TQVFt?= =?utf-8?B?bDc2Ylg5RXlqazVZamxkZmo2Y09mR2k0bEUzSDl0ZHJGemRMWHdveVltVlI4?= =?utf-8?B?TTBQUUFIbGc4dmxvZVFWQ0pFUHVRSUlXNkVpcHg0N3ZGQ1o1MmdlQWMvc080?= =?utf-8?B?TEhRUVQyRTZZcC9UbVpIQjVQRmJRRWt6QVJSaFdLdEo4dXhnWWJCUGRUMXdR?= =?utf-8?B?ajhDUk1wb0JETlZaL29RWFZKRlJtZXk4ZWs5eit2YkxtUjlwbGppa2VSalRE?= =?utf-8?B?bUNZTmJTZ0s4b0VvYmZld01TR0VqTGJkMDJtMXQ3UFVVelN2VUZ3YklTcWlZ?= =?utf-8?B?eWdHN0JEbHJvaUpkK0QwNi81YzdGRmF1ZnViYkRnN2pCTSs0cXRkTkFhN25w?= =?utf-8?B?aU9NVmZNTDFxTmdzVFpKVmhsM0I2OXhLZ0Mzckdud0NnMXJLSEhYNEJGendL?= =?utf-8?B?b1JCQnVjbTVEbzRLVVVZZUdVTysrYjVkTHF0bnB5UDRmMDdscnFqY255enBz?= =?utf-8?B?bnZkcHhyM0RmTDd2c1Vqd1pDaDlQUndwNFhRNW4vQVNSdnpCTi9zcE94R0ND?= =?utf-8?B?eVUzNnlTVldCWkYyV0I2aDlFVUZsaHgyQUxySzFrOUNvd2VBZU1nbEpGcFhZ?= =?utf-8?B?M05Ec0s5K05tWVhrZWxqeUNhdGNtM1BxRkI5Tk9aOSs0S3IxNTJQOWpqalN0?= =?utf-8?B?a1g2TzlmRUJDMTkyeUs4WTNjOUMzRklGSmhNYWFEUGJ0bm95aGlFd1h2VnZs?= =?utf-8?B?V08zc0JVUEdYM2dWUnpwbTRMTnI5SEdyQnBpWmpVb25aTmVWeitlT1hraXlx?= =?utf-8?B?Y21PZkxITjh2QktITGJodUNKNjc4OEkrdlJVQ3NqNnJ5L1RlSm1IS3Vqb2c9?= =?utf-8?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0501MB2036; 6:kfBkIhDqlh2hGGfdnAQ+OPSFS+qjuAvY1gppXG6tFdMH1ON7CutfAmv0qktOh8GjYRMrPkMUSGWvetPr7kFTGDl1d8XlrvA4D8BblOY8qbFzjnif1kuVN1elWEpr44F6WAn+3gmqALa2Ndqhfhgo1UCmaUEhnnuWDotHXbSarLTmldUfmWajNdP0qUMQivuTTnhSJsRWZBLVmf9JSXFsACV0f/3+tR5DEogUXJqsHASD3CAPFOhinMGvGqAAsSKig30OPL1yYrtnRTfluRPyKXkdTkLT1Syxinc90Sh8dt1Ed08woR6lqxS5SKNW2S0rUeAEmUcXHsVMVfY8NOZOxg==; 5:Dh5E616mgatiVWftJM/l5pFxFR2lKiH9rkqK/C2IIGQINTFEDZJopGlq8bmn/+EVoAEj5QFCJmR2xZLnQZtTWTnDrOek76EAcKrBafe9AX7P6S93AvTynLFokLZk7wTsuJFwuzzo8rWhwjlm2thZUg==; 24:KCUwikJri14Ch8k75yHcMONuAa7d4kL6UcLSp6GXMH6EBfpv48p0qcJcMh3KgPxBJjt3XxQXOyk7I/wiZGKVQVzyFP+UOadsAYbmNyvqS/8=; 7:Jgc4sO+xgm++Pl2e5H6Qno0bdBJxWy1Hcysf+bg869gWhsDRSKurROSVUt0h8w62Ap6QMUD1+flVpkhz6jk8xFpZhEydPYEDjzXwGYAltqyCoI+65GK0E21yygAmg1vUZcYkyfAqyyCih2pJKZsUcaVnbbEKFp6RdyB98MVVkgUWWYpcURxiwVIyf2h5UCG3HXuTzBxbnGGl5ico/1Zp0nGUh34AN0p4qYgT73xUn9M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: mathworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2017 14:10:29.5498 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 34bae6e9-f432-4217-6ee3-08d516fb27a9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 99dd3a11-4348-4468-9bdd-e5072b1dc1e6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0501MB2036 This fixes PR 16577. This patch changes gdb_bfd_map_section to issue a warning rather than an error if it is unable to read the object file, and sets the size of the section/frame that it attempted to read to 0 on error. The description of gdb_bfd_map_section states that it will try to read or map the contents of the section SECT, and if successful, the section data is returned and *size is set to the size of the section data. This function was throwing an error and leaving *size as-is. Setting the section size to 0 indicates to dwarf2_build_frame_info that there is no data to read, otherwise it will try to read from an invalid frame pointer. Changing the error to a warning allows this to be handled gracefully. Additionally, the error was clobbering the breakpoint output indicating the current frame (function name, arguments, source file, and line number). E.g. Thread 3 "foo" hit Breakpoint 1, BFD: reopening /tmp/jna-1013829440/jna2973250704389291330.tmp: No such file or directory BFD: reopening /tmp/jna-1013829440/jna2973250704389291330.tmp: No such file or directory (gdb) While the "BFD: reopening ..." messages will still appear interspersed in the breakpoint output, the current frame info is now displayed: Thread 3 "foo" hit Breakpoint 1, BFD: reopening /tmp/jna-1013829440/jna1875755897659885075.tmp: No such file or directory BFD: reopening /tmp/jna-1013829440/jna1875755897659885075.tmp: No such file or directory warning: Can't read data for section '.eh_frame' in file '/tmp/jna-1013829440/jna1875755897659885075.tmp' do_something () at file.cpp:80 80 { (gdb) --- gdb/gdb_bfd.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) done: diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c index 29080b8..229f5ae 100644 --- a/gdb/gdb_bfd.c +++ b/gdb/gdb_bfd.c @@ -705,9 +705,15 @@ gdb_bfd_map_section (asection *sectp, bfd_size_type *size) data = NULL; if (!bfd_get_full_section_contents (abfd, sectp, &data)) - error (_("Can't read data for section '%s' in file '%s'"), - bfd_get_section_name (abfd, sectp), - bfd_get_filename (abfd)); + { + warning (_("Can't read data for section '%s' in file '%s'"), + bfd_get_section_name (abfd, sectp), + bfd_get_filename (abfd)); + /* Section is invalid -- set size to 0 and return NULL */ + descriptor->size = 0; + *size = descriptor->size; + return (const gdb_byte *) NULL; + } descriptor->data = data;