From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55780 invoked by alias); 19 Oct 2017 15:59:44 -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 55754 invoked by uid 89); 19 Oct 2017 15:59:43 -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=struggling, Hx-languages-length:2990, H*M:92b8, H*M:9c8b X-HELO: NAM01-SN1-obe.outbound.protection.outlook.com Received: from mail-sn1nam01on0046.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) (104.47.32.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Oct 2017 15:59:41 +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 BY2PR0501MB2037.namprd05.prod.outlook.com (10.163.197.24) 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 15:59:37 +0000 Subject: Re: [RFC][PATCH] fix gdb segv when objfile can't be opened From: Mike Gulick To: gdb-patches@sourceware.org References: <59E8B251.4050100@mathworks.com> Message-ID: <8c08307a-94ad-92b8-9c8b-c713cad541fd@mathworks.com> Date: Thu, 19 Oct 2017 15:59:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <59E8B251.4050100@mathworks.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BN6PR1201CA0005.namprd12.prod.outlook.com (10.174.238.15) To BY2PR0501MB2037.namprd05.prod.outlook.com (10.163.197.24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 01f2846e-f0b2-4552-5bdf-08d5170a669b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:BY2PR0501MB2037; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0501MB2037;3:dZ9Pb+pOd8PLSCc74Vr8uuWRui9+kECAxYcpjcTyNVL1E1RbSqOADZmYV5fZ8zbuGwis3ji0awqIr4/mZSarCslACTd1xWzJKnKmnh/GUOSmQSzbgUfX3nuBiAxmNxEWUbRMoEGZe5PHszz8SEGckZMpZtiUGWpkKjX/PuSpSX6e/Qph55+VFlx/Hqkt31UMEjfyGKML5gNWVtQRkWPZ5vsPMEV5L3tR2ZXa+5ZpLcJZrj0e+Rnhk0+jUUqUvVSp;25:5RdgcDqVbllQHvxlf+gUJImrt1CfbWFmnZ8zboOSoctI0TuFWizIkfp47AW9rHXzCOJBLjYyPboukwpBliT2EIPt4dS39iN2XYsmXIBhdIoKYO943M1ShlyKW2FGAC+WqDo5D2pmUmSss9SLGvzeZ+nCK1MmfSHWLXkTrmwXUsxfKlaQzAlbUYasoHwml4On98KD7nrkl1KGoxgFMg6k9p8YHGP9ERIo5iU9ALJHwU2Yac9jIgGGH5GJL6XUJaECRGYRRse34H35twuWHXXR9xwhTcxkCYKSWel14QZqiur1urMkEjA+arJIMtexR6RHpH8cNsE97HutK5V2B5nHGQ==;31:vmVWrUbwua5ZnzFQiG3lEUrqnZDfS9prlX+5YJhc9bJlqBSq7YLdqt9PF5uVzdknSxMHtXu6GgKQ1peQxI5XCtdh3tZECRSR08B0z+fkd/OtwcHnh28nSDVF7lebRwjZ8mdpJHKzYVMUDATGULYJaHYf3BZLxEk2CQIF0YS1tqKzkyre9UEAoZUqm0iYGShRsnPbda89jwovYHmPdLW1okTxh+5YXAxksyMr3aqmlcc= X-MS-TrafficTypeDiagnostic: BY2PR0501MB2037: X-Microsoft-Exchange-Diagnostics: 1;BY2PR0501MB2037;20:wKQTfQKHAjPTbKxfNzUDJZYgYpfOZl18QlR9KDChCYPpWTvCYndjHSMcQCPz1tyvP6B+fqlcVgccvGzD3DjeD7z32FDju9sOBK0WKLmQlAFf6e/e3u+0N88Duw2vst7zNX98VQ1qgcXF9JkRjDw8Oy5vAYUjcrZRxFU5KYL8A4cJzPqjgVWKEEHjb7bf34llT21y03ZDyEh8rK+nrs0B8fvp13rZqlDRMj0EXCoVPOgj2KUNx5JQnTeh98vWWgLmN6mptEVkjCyhx/Jddi48m5JxF/iB8Agyek5ePPsFCFaqUbW07mlGugfsP354qsdlxhRqLFsb6s1Y5N1AeYryUzMhA+vXcrroaKtgT5sPQi8ITWj224R7hBj3f49pgJYPINgMALLqIvnB4rDafbOFvvGXOGrYAmMRtEKf2snitp0COxgsKFeTKetJFqbNMHVSk5cmWIgoq+ccP19WFVBQAFwzi7o8F1Ah5mRZRdhFv1N1F3J1DS8Z0IV+Y4Yao9Kz;4:K/gTV7F4tsOr+N5ul/R2K4bjinVExm+WIB6h0hsNqe7cJLN6X5QrNbQ43E6bxJOBZY9DTHFLDmhrw6Hoj1LH1JCfudqb69ZIpnucpDebCxYDwtJUWmx4mHnZM7EoVFik0c7YdGLc859z33s+PvJ+JnhEnVQ33KvgRYG8RAfoUFXf5YN/xcV4mOmKLStWDFFmRtp6zVdTecTqulvd+D6AfRRR49cDffbbV/qvNmL15CHzDLn1d1oJHlai+NiIJtbT 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)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BY2PR0501MB2037;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BY2PR0501MB2037; X-Forefront-PRVS: 0465429B7F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(346002)(376002)(189002)(199003)(77096006)(6486002)(305945005)(189998001)(2906002)(81166006)(81156014)(90366009)(8676002)(25786009)(86362001)(31696002)(7736002)(72206003)(6246003)(53546010)(50466002)(8936002)(65826007)(83506002)(16526018)(2950100002)(6916009)(97736004)(68736007)(105586002)(106356001)(3846002)(58126008)(16576012)(2351001)(5660300001)(101416001)(23676002)(6116002)(76176999)(54356999)(50986999)(230700001)(65806001)(65956001)(66066001)(47776003)(6666003)(36756003)(64126003)(33646002)(316002)(2361001)(31686004)(478600001)(229853002)(53936002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0501MB2037;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?MTtCWTJQUjA1MDFNQjIwMzc7MjM6T21PalozYUdxNldMNStDTkhOdGNnN1pY?= =?utf-8?B?MTAxeG84WFE1Z2JFUElsUHpsYmVENFVmN1lvTDRUamJFKzZRaytRbkY1Y1FT?= =?utf-8?B?c3ptQ25KM29wQTNJOExKNFJBNWo3K1JBVWlRc0g3SUU0Y3Mvc1ZicEViZlp4?= =?utf-8?B?bmFIdUdMRWZQUUt6cEtMZkYyRUVPNVhxNk81bFpXMFZqTHJrRGxaOXk3dlNQ?= =?utf-8?B?bWx4bG5HVVU5QlZ3Q3NEdUVmQmlmOU5SZG5Sd2dvRVJBcm5Ob1FQdjREVEda?= =?utf-8?B?YUZIUjlUVDBvb1VRSWZwNjVYQkl5R2I5bi93UUQwcWk5b3RHSlF0V1k1V2py?= =?utf-8?B?N3BxNmx2ZjRxVG9peXhpc056L3Vrb2d3OXdKMzRnaVRSYWsvT3lWMTJlUlcv?= =?utf-8?B?YkVpTGdHUWFCVk93TUFGcEdIOE9uYnNEek41ZWpXS2lRUWtzOUphdkNJa3FM?= =?utf-8?B?SkhjdmFLb29FNHE0b3VyWXg3MExMMjhuMVllMUNmcVpIN2tlblIrSUE3Umxt?= =?utf-8?B?T3YvNDhjWlJsUm5YS1VUbmZrTlRZdkNpS0lGdXJSeFc0bHZnSDhEb0YxaDZL?= =?utf-8?B?RmM3VmQvVGlmcUpmc2UwcWRxanBBYTZxWXdENmQzdWF2Y3JwTWNkQy9TamlT?= =?utf-8?B?Mm9ISFlWaytqTTR0NHRKMm9DbzQzLzRVdHZkTHdwWVdVRVBZYUQ2UEZ1OWhO?= =?utf-8?B?NGdaNXhnZjM4OElocGdrN0M0Yks1ekJVSWVOOE03SmlHdWdkOVBTcXU3Mm1w?= =?utf-8?B?S25zYzVoaFIwR3BRNVpHa2k5alB2QUVKL1M3U2d5NGhCYmhEejFqWmNYcCtT?= =?utf-8?B?VGpVMXYybmRDVzNkZ0x6STZSc3gxV3RxbklXZ1FXbTBqalUyVUlmajl4ZjBk?= =?utf-8?B?cys5V29RbFB3S1NDT2p0c0psM0dvZ0RaTG1IbkVJalFDN2JhSlVxT2F5QnNq?= =?utf-8?B?VDZUQmtZV2xJTkRWMkw4OWptcGdzMXhCSldRVnl1cWpCWjdyeENoaGdhZWhT?= =?utf-8?B?WmJTeFFhTklYbno1alFvUG4xeWZWbTRpVU40bTBLUkV4YUJCM1JYMWVxM3Fn?= =?utf-8?B?aE1OanhwbDZCTHBBcXJISWd4Zy9Eb1E5Nng1RW9lM2NNUG4vNk1Sa2Jsa1J6?= =?utf-8?B?Ym95NmpTanlHcDFTYU1pWEgwVTUwajBHZ2FJNFo1dlFvQ0k4K1ZibksvQnoy?= =?utf-8?B?SkJsenFuMVBselNpeXRYUlRDMWY0a09LMWp0M0wxQXFGSzZjcXpIbWw1Vld1?= =?utf-8?B?a2lUdmVMTkl0K2ZMNXVBV3BqdTc0REo3cEE1YzdvR2VGamlnaWl5QXBwYlRJ?= =?utf-8?B?WExndEJJaU96TmNzZXEzRlFsMW50cjlIZDNZK1lvUmpHTHozVDVYclptQ24v?= =?utf-8?B?UDVycEJCVkZQazkyd24yUnV6UElDc0dTb0ZaVk1sc245R0pxQm5LamVoNTV2?= =?utf-8?B?dHV5aW8vTlBSdUlQUmJKekJwVHRRK3FMcHJPSDVvSmpSN3RIYzkyeUQzclda?= =?utf-8?B?YmJnUGhEaENzRkpNRGxTWVdiRnV3MlV1eGJtMzhhVGpCQ0hHd3FBQWxlM2Ur?= =?utf-8?B?Wmp0OWk5Tk1SbUZhU24zV1F3N1FFa0gySWUxRkxBQUJBa0UzYmFoeUxWK3lQ?= =?utf-8?B?VmVPNXloQkl3VXhWQW8vUHpxYmtmSzlEd2ZCdkFaakY3QWhjL3V0alp0TFNK?= =?utf-8?B?NFV5RjB6eGNGc3NacitZY1N0KytMekowZ3ZXZ0NBSXJMbS9VVHduV1lBM2ty?= =?utf-8?B?dG52WU5IRUluWG1QMXRQcGdCd3ZGcUpIbXFISnZyUU1kbGlkZXRBK3B1THhr?= =?utf-8?B?SUZLL3c1akZDYytBZzV0cFpvRFY1dU9BRm5ZWURhT2M5NjMxdz09?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0501MB2037;6:FyAfQ9WngZ0A1dQa1G5OZnIzJSgYxfTravFm1O0yn4qsCxw7xhUssgzmP3ueRcQka0cCpVhW+o53bZuE5wAQdtskEYpm98LiqIjxxPmbYArmfnr2TX50Dkh19KSE+WNM01Lhp0MzXFIPt/wz+OYQBTCP1qvDYg8LPBh4SpxrW+Vg9npX6LqVoKoZogx/SQRqd964ggZfa3oB0CVrlWlRY31S3klDyrxnfZe9jUeUZDLypgqJfeqkJELrRx82H3+rWLI5iRsWkWSHCtvmVKg66ZLt0VpYXBV3yTiq+jaDkYhG+nynsnAvypHLoZbi4jVXMY5aR9o16Ua6VjcWoLzdbA==;5:Js111yN6O3iAYKhUF2C8INq+d3C1T5IX8fWGlfveQMGAwi8lruNbWI4Ria8FNbuEsOaUTxcbzfRT203J9BeWgOVoKakztYHjYe2Wv2g99jIq4jf+6YmjwYJG9MPU7RO97g1WAJTtF1RuHutFjTuOgA==;24:Dr0SZhh6VqizQq34hqq1EWrpRp5vnxy0BVDUytr5mw602+eCsTwFlsbxxyFRrpavmBwpg++/7ilaeYmGep8XL1MdavSTtabSWeaaYw1mWVU=;7:EJKOYdZJJw/C2B1LgygZn/pEInLFllOzcmFQxRDoSWf0xgIQa0fB9aEhd434q5030u7Rw0BSP48qkXVwdcliEPwZcukd1ZiJdtfx7LFmkZ4zPwWmwwySx2TOm4AYeUSKam+BIu5CtknFMiSaornwaNc5kwaCikuNrxoyVPYce1SpkmG3q+prqGyLrlJOgwlwPGOGRnAPnFj5EgyoVRqb6eJ7oRPlcIZrU+1wTxDG9mg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: mathworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2017 15:59:37.8237 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 01f2846e-f0b2-4552-5bdf-08d5170a669b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 99dd3a11-4348-4468-9bdd-e5072b1dc1e6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0501MB2037 X-SW-Source: 2017-10/txt/msg00622.txt.bz2 I apologize for the improperly formatted patch -- I'm really struggling to get thunderbird to behave as I want. Here is an updated patch. I would have sent it with git send-email, but I could not figure out the proper way to add this preface before the patch (without it looking like part of the commit message). --- >From 5dee04076518554e4baae864569d6f4faee9b685 Mon Sep 17 00:00:00 2001 From: Mike Gulick Date: Wed, 18 Oct 2017 16:04:27 -0400 Subject: [PATCH] fix gdb segv when objfile can't be opened 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(-) 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; done: -- 2.1.4