From patchwork Sun Aug 27 10:15:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 22367 Received: (qmail 81881 invoked by alias); 27 Aug 2017 10:16:27 -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 81534 invoked by uid 89); 27 Aug 2017 10:15:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 27 Aug 2017 10:15:47 +0000 Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 7D.70.21299.1DB92A95; Sun, 27 Aug 2017 12:15:45 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.75) with Microsoft SMTP Server (TLS) id 14.3.352.0; Sun, 27 Aug 2017 12:15:44 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.localdomain (80.216.43.226) by AMSPR07MB312.eurprd07.prod.outlook.com (2a01:111:e400:802f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.2; Sun, 27 Aug 2017 10:15:43 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/4] Read stop_pc after updating the gdbarch when exec'ing Date: Sun, 27 Aug 2017 12:15:32 +0200 Message-ID: <1503828934-26404-3-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1503828934-26404-1-git-send-email-simon.marchi@ericsson.com> References: <1503828934-26404-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: DB6PR07CA0078.eurprd07.prod.outlook.com (2603:10a6:6:2b::16) To AMSPR07MB312.eurprd07.prod.outlook.com (2a01:111:e400:802f::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2faf0cd9-3faa-4749-6cdf-08d4ed3493c9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AMSPR07MB312; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB312; 3:pro9YPiVDUq+umg2gg/FyKmr7Cq69X6eX51qycqm3+GbMC/6dX8g3YYxEsNVeCYaoBimaJcWMvQdkE2e8nIY55F5S35atAXsafKSIo+ErAKGnLTqZpKDfE2wrsCn7NsbeXRGgFznBKqkBJS6IqEZGF+toVrYbOEfje+W8DZQ2Crfs+fuorNThSIgmNfClJOxNUXySFQQMnFLUqKCbN4JfEQ3KL7HjjAKUow7digInZ8P+t31j/eV/iNTXSgaWRRV; 25:Y7bsf/858GJc1vr9B1T78/AjNgmZeEbT/Fmv4kr3o1aQpctzb6Cy8bhxLVcDlrwk4/3YgSKNPTnbRt7BAL6lU5B1wR+j5UONfKna6k38zEUCNmDuyWZ5O+2zejHR+qg/+nVE5jZvM0fFnBrFVQeGU8HfDfyq915qWknzrpg4BzZHpkeLc3E1XbT5j3/GjGrzhOebVqnWXdnIc9xswYrgyxf6lYU1FNLuKz1A5Tl8M+qLsPqe3JTvIqH50uGX94CAJL1c0XBps+Hr6fVo9Mc58V88veabX4ZvE2tSia6hjlXm4i09MuDbftTcnO24OLblrlprFcP526Tcd2UxvpIklFtS2OakLJBjz8THVzQolGo=; 31:X70Ba8u3L+Stxtt0pvQNDQwQ+p/ZHEcLYuddw1jst0Bh/ryb1Md908YdS5Sgaj9MPlT7eDqBRraTshlk5raJi/f/PUG8tf7B/egWSuuXfDmnKuUlINWV8gkxjHB2eDcn6khJJhzX8hujQ7077coARYo7eWpGUQChidaKValvW4oxk8vrTpk3in7S57gPRqU/RfdApI3yRe49InimFWCbDpwnUk57x+N9rk/AHjW9KsA= X-MS-TrafficTypeDiagnostic: AMSPR07MB312: X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB312; 20:LwhfgBlEL0+/wKzIzeVU5E74aWM1pBCjLKfoV3TX4qrsaM1v7cYw99KuuJy23ydiGskqZr3R8clfasVz+YToX6tIFZ+92rMhFIDKuyBjKlu0irnqQMGEGBJro9gjVTDmrFKl0HfIl7YDrd8rXW6uZXb1S+cVOcRiTWYbGNGHthIosnl9j6Mf7VO0QxBULRyrxBS3+CkRw+v3ktCoWaQ9fPCFV7TIpg1yrVFw7sGHGhnn9vJs4POCDUkp/kTClh5Lb+OydCp83N7dF8hmXKEmhZ9bHbGtfnL3nxxinae9hF9zBx0QTVgsmtjCrhcLDoxw02bq7xjyAapCt5SQLyI0keSqHkawKEj7xv7dVGUdf7xdnCZdRJjhljT6XsYbXhwqybJO711poPf5+WZpKEXZ3h/b9JLMBmqT7Xp6gjV+7opKqLHOZNA0wSdB5OENr9o2SHtfoO8yfOeqN0NvvqxVB9EkSklc1N4jyaWyTa58ujYoOOQKH8VwSwTMysga//8B; 4:uVV0rqR/4iRZi/sTA1WBfh4gEnOy54dIVVfl0OOgcGEtlSrxaZqN9/6f85NL38a/IHrCzL0lMcQ5TA3RZk21IUIlui9s/asplr3odaFIi13xdT19sf3ExKR9xwXlaE7WEs9Db+2hTDx4DXUgcbyDLDjLawUefoJ0tQbuH4mMS1cQmUcJSiKkUKEq5kC+RHUU443gMr4YxVw7ySm+0ZxEodFN+4wan850O00Xpyy57Xwz2lH5RxBKTggFwFgcOQvt 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)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AMSPR07MB312; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AMSPR07MB312; X-Forefront-PRVS: 0412A98A59 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(54534003)(199003)(189002)(478600001)(105586002)(50466002)(106356001)(6116002)(3846002)(2361001)(42186005)(48376002)(4326008)(2351001)(33646002)(5003940100001)(8676002)(189998001)(81166006)(2950100002)(81156014)(6916009)(6512007)(5660300001)(97736004)(107886003)(101416001)(47776003)(66066001)(110136004)(68736007)(53936002)(50986999)(76176999)(7350300001)(50226002)(2906002)(6666003)(7736002)(86362001)(305945005)(25786009)(36756003)(575784001)(6506006)(6486002); DIR:OUT; SFP:1101; SCL:1; SRVR:AMSPR07MB312; H:elxacz23q12.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AMSPR07MB312; 23:6brBo7pM2xlFkxTX5lLXWh1vy2RfxbOi3Xv++cwLyo?= =?us-ascii?Q?xHVxdSbHfjGJuF0JlFXGcJf7gAn4AiR44liKarARo0i9Bqho3rLrnBj3HJRD?= =?us-ascii?Q?KdH+LCwBUc1i5xAjFfYp/+U/LguCdOSyIOs1JpnskXf6r0Up4uS/Z+WqdVjt?= =?us-ascii?Q?L8qB5TxQtqhouE0XTBctbOjHbdDb/XeQmSLhiZvwS9bTf63Sc5eMhKCrN2ms?= =?us-ascii?Q?iIeLaLAL2P48By4s4V+PJ9z/YGR2F9WamK7L20ZpBcfdAFsOCCFJvxa7WKW6?= =?us-ascii?Q?gju2oO+SQQ5fIjtXeDgA24weTxteW58J/acw3rWX/ji+EfNpwapxm+XGdzy6?= =?us-ascii?Q?dmXZHfWbehymEcr4iX/CbiHzSulCiZwMrpDf86W83ABshMDucRVXFned+sQ+?= =?us-ascii?Q?P9f/vRfJnP+r2C8mgE5K9E6LFQa09fOHzIlgofV3UkLP9vl1LA2xfa5mTAJy?= =?us-ascii?Q?E3CK4N92iijLT8v8qN5zb0aulgmpWFqoD3nctZldQrwWi/+5OJXKDva8qz7i?= =?us-ascii?Q?Lh87R4DTsbpLfZOAQBsDIWz9HTL26KtSbStXmYkzaPmWnPiBUEqY7kNTY2HZ?= =?us-ascii?Q?Kt9si532m8RftBEVrYdms+UQqT9zoPiTdaN6PWf5r78Jkt+6L7nXbDJEdKi1?= =?us-ascii?Q?TrRSJigecHt9GnSwz6pTF9WxDtcbJA4Ye4UVWCvHgtkIsTKc/88Ybsp31dS0?= =?us-ascii?Q?ADTp+9FrumT98SpNPVbVp65xbYzaZ6gHPMUptKyCecsu7SvTBPklyMJIxBz8?= =?us-ascii?Q?O0ycwoPeeGtqRyUOMazUTrqx9nSNRXcIxegwiBCVOLRG1357U21hHfo5Vqh2?= =?us-ascii?Q?gMJrZYF5VpJAYmBg5qNBpeZfsfm8ow8HUS73dYu+h9xAErH4MD/2uTqLFLSu?= =?us-ascii?Q?uvgxORtQD5og/Fih3whlArZgO4L8NZFus/Sr9THqffzONvt9f6H1Lp1B1LOT?= =?us-ascii?Q?HJGHPjquRhwAixC6p+/thV1RMzLSsn7D0KqWFR1CAJZS3MJgDN072D/osKzz?= =?us-ascii?Q?jJ1efYwsByTkZ6EgquOB/kw8M8HnQ4gnAFF5XQXvcOIVhmyWHEUWVyXyg1sA?= =?us-ascii?Q?f7cEwOJYIEnu5RBrgc+jZcoiBtyEzkJdn/pdJ20JPSUrEQ2BTLi0zdD6L6ht?= =?us-ascii?Q?vHYL5kLWnFaTgGw5+ZzGNL/PvkCn3zqgIl4y/WXx2jIgm5BJx3dipUmg2CrH?= =?us-ascii?Q?f6yurU27vY7XY=3D?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB312; 6:PJKXFu/QpczzFvFS09Q8qnIbU3UCscpe4mDgDRkH7RBd5OdHTo3AAeKfc95ltoNQyz3cf8xwNjQno19ZhZGqvkLk+UnTZHFXHw2WvdyiZNlIMTg/xy2iybH6gCBujANBFmM+5OP6dlb0EkzFfgKqVVXJgyN5AuaURVKazJbgZiyUEurrJ+WjPQv22oQcJZSTPtb/zNnbpywtOxYB+u5csX9NR7l5/2QeAJKOdpL/RIYGJVdthmu+a2iiXOcJVicltHiQzc8hJ82gFq3UTTCTQaVmn6UhOODaR7cQE/EvcJtD4dPj8vzbFdAuon7nfKUFqAXWxwMMKlgcr6Mf63pAag==; 5:wEtyMTBzvkLFkCdTp9s5OphY3qLp1TQ4fL4YTKOgdPUccF5w9jNX9X2wLFNTbY16itU5tycnSVc2y219qtxFlDVSML3WgluJecUOQI9omjYr6VwqMwmnNb0Q7TJJgTBG1K3bxXzpHUmqIzEqem9DvA==; 24:rN+yRcmutIw4YigTCKK9OFd3OdPrS4eAshJS3Jb6yiUHGmHRgkMIsvsEAIMmf+LoHovLGyWGKgo+YmcVyfIb2VsYiEXUIQA8qZBnlzk5Kuc=; 7:ehitJhjJqnD/cWwPFbJQwnBS0iRAV0evTf3S1uaSMXKHvqMLr1Xvvkn+EsDwz3B90oqrBIM1x9EXmzQUyQ9RCeYVUSBDycxCyqstH1v4mkDHMozULzt/5wwDaQ2HHllsyTI8LZn57zOAPeQOY9aaoGoL3KVghl5QrR/GmqLlP9UTnUybntTSHpLZKji0GA29njZnmfo1j7LODT5NQefkOuHBtd/ir6OnOTjEVqi1gGg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2017 10:15:43.6647 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB312 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes When an inferior execs and changes architecture (e.g. 64 bits to 32 bits), the gdbarch associated to the inferior is updated by the follow_exec call in handle_inferior_event_1. We should avoid doing any register read before that point, because the registers sent by the remote side will be those of the new architecture, but we would interpret them using the old architecture. We do just that by setting stop_pc during this window, which obviously requires reading the registers. This results in gdb.multi/multi-arch-exec.exp failing, GDB outputting the following error: Truncated register 50 in remote 'g' packet This patch fixes that by postponing the setting of stop_pc to after we've updated the inferior gdbarch. This bug was hiding another problem, and as such introduces some failures in gdb.base/foll-exec-mode.exp. The following patch takes care of that. gdb/ChangeLog: * infrun.c (handle_inferior_event_1): When exec'ing, read stop_pc after follow_exec. --- gdb/infrun.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdb/infrun.c b/gdb/infrun.c index d0e4105..de0605f 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -5318,8 +5318,6 @@ Cannot fill $_exitsignal with the correct signal number.\n")); if (!ptid_equal (ecs->ptid, inferior_ptid)) context_switch (ecs->ptid); - stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid)); - /* Do whatever is necessary to the parent branch of the vfork. */ handle_vfork_child_exec_or_exit (1); @@ -5328,6 +5326,8 @@ Cannot fill $_exitsignal with the correct signal number.\n")); stop. */ follow_exec (inferior_ptid, ecs->ws.value.execd_pathname); + stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid)); + /* In follow_exec we may have deleted the original thread and created a new one. Make sure that the event thread is the execd thread for that case (this is a nop otherwise). */