From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 97168 invoked by alias); 1 Dec 2016 15:55:25 -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 97158 invoked by uid 89); 1 Dec 2016 15:55:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sessmg23.ericsson.net Received: from sessmg23.ericsson.net (HELO sessmg23.ericsson.net) (193.180.251.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 01 Dec 2016 15:55:14 +0000 Received: from ESESSHC002.ericsson.se (Unknown_Domain [153.88.183.24]) by (Symantec Mail Security) with SMTP id CE.65.04375.0E740485; Thu, 1 Dec 2016 16:55:12 +0100 (CET) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.24) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 1 Dec 2016 16:54:58 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=antoine.tremblay@ericsson.com; Received: from elxa4wqvvz1 (192.75.88.130) by AM5PR0701MB1874.eurprd07.prod.outlook.com (10.167.216.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.5; Thu, 1 Dec 2016 15:54:56 +0000 References: <20161128122758.7762-1-antoine.tremblay@ericsson.com> <20161201144401.GA19289@E107787-LIN> User-agent: mu4e 0.9.17; emacs 24.5.50.1 From: Antoine Tremblay To: Antoine Tremblay CC: Yao Qi , Subject: Re: [PATCH 1/3] Fix inferior memory reading in GDBServer for arm/aarch32. In-Reply-To: Date: Thu, 01 Dec 2016 15:55:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: SN2PR18CA0004.namprd18.prod.outlook.com (10.169.189.14) To AM5PR0701MB1874.eurprd07.prod.outlook.com (10.167.216.23) X-MS-Office365-Filtering-Correlation-Id: d5d2bf02-ea1f-42a0-5459-08d41a026629 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM5PR0701MB1874; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0701MB1874;3:xXmLEkY8mmBEERmMzw8IYybFsdHuh5PX228Z853kOUusVU4qXCBR7yCrG4bKwHEcOrB1TP0WTJD45p6qcxyxPi6A+RUy6c55/Ovt5V6NiK4VaO/QFQr1LqjEfas17mA7uLF/BHwR2hTzicf/Pj0DeTWJynbtuBYqluM1EsiNMdFvZxj3dcC9l7NolGC7nBH+lxVTMa/oLjdDWUFfATSuY/YyfYvHbwbElgn80lOmd20lPN4VhOFCNxex/GasP6nukHm0zyqE8ZNIRaEPVE0dPA==;25:ziuWrJecwW81sj06bUsF1FJUXTMv+xmFSfvYIYmVsqewbjZF84BvNobt35dUA0zedLtx986wbtw4nR5Sx4pWHrlU1rYM2mYr+G30ZvVhUrU+wkEv3zdnxWjYtav0hWblIvoITnn5ftaviwi76fCLrqhZkz/5OdEGdasMkzfvY6UmLD6WSvJffAg0vLMwMo/0aJJp+LsyPo+W5k1Vlg6ncvld8YjrtsO7pQORbTc7sEHOL1bfdfkOg5rhW79cgZLQ9bLbZrD6NGK1lvJCEj5WNug1+DlT6qA1OCLsggc/urtEn+0pHFEn1/MEwV/voISTFaMfw4uPXDNeElOZafjJyX8Kth+sVeNfP/l13joiE//CdMaBxOq3P0cM18fy8BRAzqp88CAifRnhUIZGdpeac9nktMIbfjkG1kazkkrGBYiQxD39Ztg3EB1lQWJTc1P6camEcyMd5wLQ120bloaBWA== X-Microsoft-Exchange-Diagnostics: 1;AM5PR0701MB1874;31:J1+Ui7Md8gF+bNrCxGh1CU+8gV8SGpB7TOW7zUCccpjIYZUrORS7QZbIJGBaCJegvH4jhsEI47EcOjO2bPqPRqjz44wkuS5bbybZU6MuMU9aX0ejuArfeFkE5KO+RF1GNDYoj4bdYSxCHp19DXoxTibneb9JBDtabV4FF7+G/dIDMxfB+HvWpMVCat0SJhIT6FcBhDvLdT3ZQCQ04a+wXNlZ+Oleo4fVMGU1nKZb7WoixH5XOxvMghix31zax1QXS/MzzA+gMZGEZARwU3HG4XFl+H9myh7hjSGe3XEAbI4=;20:MIz7xwqzq9OPw3ZJBKP9kWUtGtXAGfXK+AiptPdWS5QfbyxzQTDeCbYv3WWcon+HKhRtCjXDK18BRKVFXWoCCPKFUr3i7Tcmj7uNr49fc3H4SP1ktVDqLfiatSE6GQMVlawbkN0DItp2cjPrqGrDyyjb+y6a2rw4hsrjY9gL5F5JCpWCi4Nez2Nl2sWNchWWbs538sOqWA+pEhyiaRV50i7o5HUOo1qlUL5jQhP7i0PKZXvJrwu2sJv1nJWIh19PaR9Vto3txNXH03Khzr4QrBUe2gje+kUrtRVAtHh8MV127S0ARWnlNJRfHECTBXnIEmml5XQo6QG4JpLCHJLMTRL2SJy7PM/jwpigUWFoYXNylonhLQ6lrrjk+o8M9Lrk3cuznlKoSWS5SyBs5dU5SVFyqtSuBmODGlLAi7JgtSvUHaWKZL7lWXxmCQc37bmWBEUzjPcsvbFB+dJspqxo4is4lBi31bgHMn4CpG0Ec0tSE2HGtikqfi9u26qSV951 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148);SRVR:AM5PR0701MB1874;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0701MB1874; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0701MB1874;4:cvY1daRzu5XQrWnTWGKX50zji0imq/Dz8TkVBTHENdje5iTickmges6ssfNwZ3rn+CeQGkZNKECivdYXPDor206Bw10s62GuUpu7F97dc+7Wo6TkKYwCWwBOriTh/B1f8M0LT0T8pSPbEBbVPcKWhq1d7vOXxnU61RjWWPmYlkmUkyaCTUkFy0FzFH6jjtdhYx9OkLLkVEDHrBGIFmPfBqw2km/A9kkbqQ/lqXOhqg18p+VcS/tojvd8re9wncJHM5pngR8fEVAp0RfuB+Tyhj8O/tPq8+ghy9rLf4IljiKAGTTKo1iUUdMYq2NkQp0V4bZR2ZGNGZEe2gQMMOWFfdTYuv/E7FzeM1uwZfiUQ98mYI14tOjAmwODYM5Qkw3m0MSsqDkC3VonFNlR78YTqgrqSdRefAJN1k0wtNYIAn0zt6UJQFXYh7OVOjxIeiOwF2dmLv983nDTCWJDZra0eVboEDZPqZCNnYmIVBOAbiAcP5ywgLWNrshz9G9jYUXvxuNMe7JE58/y7E7+iWvZbt0xvKnwhKLdBrUwnpdwmEgseQo3cMqB5itwImbie0QCrGxCz0sp2qsK5yR8YuavBg== X-Forefront-PRVS: 014304E855 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(189002)(199003)(24454002)(42186005)(86362001)(6200100001)(47776003)(76176999)(92566002)(66066001)(54356999)(5660300001)(83506001)(50986999)(189998001)(105586002)(106356001)(3846002)(36756003)(5003940100001)(7736002)(8676002)(6862003)(81166006)(6486002)(81156014)(33646002)(101416001)(48376002)(7846002)(39410400001)(6666003)(6116002)(2906002)(39060400001)(50466002)(6496003)(110136003)(229853002)(4001350100001)(305945005)(39450400002)(38730400001)(2950100002)(733004)(97736004)(4326007)(68736007)(4226002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0701MB1874;H:elxa4wqvvz1;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A: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;AM5PR0701MB1874;23:/gUYXAd2sCzwhR/QHKezCYX2ctstaQ2R3yDPOXp?= =?us-ascii?Q?qQQxqOkAU1fS+QYvC4bH/c/TG0vBrYuHneteNv5ypYZnWnjykr0+yASQGsRI?= =?us-ascii?Q?PM01sJRMG5NO94k3hCb23Ce+ieeRsE0F/a/q/HqheC/18LtRypvQWP73qxKo?= =?us-ascii?Q?T1zhyoy751mbqTueKju3ebfPfdplhCkPV030acLwmfuuZ1z4gwQLNxh29Xec?= =?us-ascii?Q?FWVR766+x3A53O40NwLV52vXi9zTiPbKqEvuF5yyGfUit3BesAo0PTsBznpO?= =?us-ascii?Q?OZICBzU9WRWTKhbdgQOhmVFrMfv8Pp7wMSsOBwytI0Sv1YPkvnzglQDmglfC?= =?us-ascii?Q?WhfGPp4EbA0TG/kV8qT6MrNICH06PeS3B8DNk2JkINZJeCP4wpDscBK4V6eW?= =?us-ascii?Q?IfU7N265pdTU2a5w+RP6wDCDINeIxhgaHJ0e1H1/RZ1xwS5v33KE1HBdky5q?= =?us-ascii?Q?YBxtwPRRFxpNs0MOV301+bQiiEM1Q1bfN1LfmOTJWN+YJfIOQHA7y42MGX0o?= =?us-ascii?Q?OK54Rc43Uyx2Oew3sbWNpQ0kw1wULiEgIuujEx938dmYUOW2n2S/S9H+Z/RY?= =?us-ascii?Q?ZB/X8Wp1AiljpOjE1kV3Xrp9flIeq8lqTO7CyX5iPx+prNS4+TzpIecX75zZ?= =?us-ascii?Q?Fb0jR5GwBaiE9Rbx0sp0f6PN8oiMzPalWCxBCrKN4bEF69yOfjWZQySyFGKJ?= =?us-ascii?Q?Q+uDUPt5s+wh0JRa256BR9IfwWDefRIES2fH/44Q+MB8Sk5WWFxeuXtq+1MF?= =?us-ascii?Q?+uHCfe7zhtljdipP1CudSrSt9LmJsfAa0nu8etyhkcZSTWHZEiyH5mT3HSgv?= =?us-ascii?Q?NcvXt3iZuktbxaunW3b5GvyJOdHVi4CytnFdWgVcUFxV6oM+EAYQqn2JaxHx?= =?us-ascii?Q?NRpXuqaA5fxLBc4wEIa1o9IvM2zCkdlGkuGzvk7cN1zfWcPrgkWhtyXRsi5Y?= =?us-ascii?Q?FDIzFfmfe2EbKiHF8b12r/iq71zzhSZHfB+30eVeLfMXiQgt10CIwN2udUpi?= =?us-ascii?Q?qtsqD8uxleuXQEaUVCAj/afROjkwB7gIqGfvifKrfRYVXJ+EOqONRqd2seEH?= =?us-ascii?Q?zm5FmqHMZJWWX8n/6gt8lZrvwO5oTLIybZ+dSNWAGRlRVsGXkU+Ziw+ABauj?= =?us-ascii?Q?V6LCUV3VdjWqyPl20h60030TgIaYipt1Ic+Qt2kWedrhHeDBkYsi4/T8K5ZP?= =?us-ascii?Q?H2sL9SwNt5ZtgV1ucV3I2T+3onm04Q+dQxp1TONNz1FHhwPhx6UYbKQqNoQy?= =?us-ascii?Q?wT69G8IZF9xzHRERVz+29P86Z0sJNywEZXcfphuGE?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0701MB1874;6:2ly3WSJApl4zSg83KOu6Q64Qm0yvOGnR8IQZd+ghr9nBkvQyCuW+w39/bQuEnJ1GF6PlfyXP1VtIjR8dibrsu9AxR6yradDMCZ8gJnchYvfftVJus4g4WQH6VAGzNnsSEq0UkfUGG7+8K82JIfKnw7LJOYESsBwZg0HM+4DThjiuCeHq1R+EA7pjeSqWYW1zrHCqtVvXVrxop5d/ZZzki+bKJrNNQVwOk2RWAwUI8RaRmUwxh906E9/JAWwfp3VcC/GXlRAox1f/xEDR/4afv2midldbsSo3mvH94n/Q9BCUQeJNpICxJI5OmsVbVW9wyqbyxvC7IYaS8W3cUERHj2KBqRgR18yG1nngzC/hYYPukOL82xZoVb3lieWOWdB1PuJgtTFRriLcAO3XAgsq4WGxX5LS0cNC9ytt7/BRV/OhYr4DHzFP6ry8D4F3EgB5pp3apPbq7hlTxm3sH4cpmg==;5:RgNzV9NUO2d4jIqHofLCC4JPF47v9qyGvIExmk13ar2SH5IMMV/AQasIilo8dLr6XzFeFX86XnUBf9WVeZUp4k3D/BF5TLRJON//hr6nm0AwZHMVejsGPvrhtvBeOdQqlhUATw4fXA33dlNm7mlFEw==;24:FoMUF+riUHOtIoh2ktGoQNuTxS1/f9SHAqEYarMSudklPt0M2+aueKcXnkQdQHPSxD3YjEFDgAxiQlquA/qluhewqkmGpcBLEP9chi8xkxw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0701MB1874;7:r8YswTdtOT+5IcmiOEjAsLOJ2WMK9VW6/8oIJ5A7G55hgcAJFtb44N8vcbs7MIYnEy1IWkwjjsudyBTHXAz+1V10HaVBfs6mi+C96cz/S1tG8+9Qd9hYT5TRNwpQubYRQjp4NehqzFYZKn9jY57l6VFu/g6dd1wYicC/taWMGwfWfgfokuYQRkfdaVKGnGVj4ZlAjMYvCcaYcHizeqcUSgy2kjZUKuk8GmvvknhreEDmTHO1SHjXcKIlu0Fo7mm9jsEfTEUe2CVYUvutPuVElr8fH5Bbtr4/c9KTNPyRwxtZalbwOpMjtE6OtvIMmMqbF6V0X2W4E1/d69LnJJ/ayClJqq3yHTSbOb76S//7pDBpHy9IRFlEkOb+kvsNMI4Ux0/0CIwzXknLjdFdUcl8uf9tf1sTzGm4JokcdDnLpQzKYgh76p/c1JXlhtwLpqu2n3EOyPSB/aU5vK8p15HtNA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2016 15:54:56.2225 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0701MB1874 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2016-12/txt/msg00041.txt.bz2 Antoine Tremblay writes: > Yao Qi writes: > >> On Mon, Nov 28, 2016 at 07:27:56AM -0500, Antoine Tremblay wrote: >>> Before this patch, some functions would read the inferior memory with >>> (*the_target)->read_memory, which returns the raw memory, rather than the >>> shadowed memory. >>> >>> This is wrong since these functions do not expect to read a breakpoint >>> instruction and can lead to invalid behavior. >>> >>> Use of raw memory in get_next_pcs_read_memory_unsigned_integer for example >>> could lead to get_next_pc returning an invalid pc. >> >> Can you elaborate under what circumstance breakpoints are still in memory >> when these functions are called? Can we have a test case? >> > > Here is an example: > > In non-stop mode multiple threads are stepping, like in the > non-stop-fair-events.exp test. > > GDB: > thread 1 > step& > > GDBServer: > thread 1 is at instruction A > installs single step breakpoint on instruction B > > GDB: > thread 2 > step& > > GDBServer: > > thread 2 is at instruction B > > GDBServer needs to install a single step breakpoint at the next > instruction from B. > > To do so get_next_pc is called, but since the single step > breakpoint for thread 1 at instruction B is there. get_next_pc > reads the current instruction as a breakpoint instruction and fails. > > Note that I used a user driven example here to make it more clear but > this is also true while range-stepping in a loop for example: > > - thread 1 hits its single-step breakpoint deletes it > - it's not out of a range-step so > - tries to install a single-step breakpoint at the next > instruction > - but thread 2 has a breakpoint at thread 1's current > instruction and get_next_pc fails. > > This is already tested by non-stop-fair-events.exp, the test will fail > without this patch. > > Note that this test is testing both range-stepping and the user > stepping. > Sorry I got confused with the code patched with the latest 2 patches I sent refactoring the single stepping code. Considering the current code this is handled by the step-over process, and should not be an issue as it will always step-over before installing any single-step breakpoints. And step-over removes all breakpoints when stepping over thus get_next_pc is ok. This becomes an issue like I said before with https://sourceware.org/ml/gdb-patches/2016-11/msg00939.html Since with this it's possible to install single-step breakpoints without a step-over check. We could consider this patch a preparation for https://sourceware.org/ml/gdb-patches/2016-11/msg00939.html or just a good pratice to use target_read_memory. Thanks, Antoine