From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13775 invoked by alias); 19 Feb 2017 20:31:35 -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 13762 invoked by uid 89); 19 Feb 2017 20:31:34 -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=H*i:sk:wwokfuj, H*f:sk:wwokfuj 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, 19 Feb 2017 20:31:31 +0000 Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by (Symantec Mail Security) with SMTP id 1C.48.05944.0A00AA85; Sun, 19 Feb 2017 21:31:29 +0100 (CET) Received: from EUR01-DB5-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.319.2; Sun, 19 Feb 2017 21:31:28 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=antoine.tremblay@ericsson.com; Received: from elxa4wqvvz1 (67.71.111.110) by HE1PR0701MB1883.eurprd07.prod.outlook.com (10.167.247.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.10; Sun, 19 Feb 2017 20:31:24 +0000 References: <20161129120702.9490-1-antoine.tremblay@ericsson.com> <20170127150139.GB24676@E107787-LIN> <2255ed6f-a146-026c-f871-00e9a33dfcf0@redhat.com> User-agent: mu4e 0.9.19; emacs 25.1.1 From: Antoine Tremblay To: Yao Qi CC: Antoine Tremblay , Pedro Alves , "gdb-patches@sourceware.org" Subject: Re: [PATCH 1/2] This patch fixes GDBServer's run control for single stepping In-Reply-To: Date: Sun, 19 Feb 2017 20:31:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: BY2PR1001CA0020.namprd10.prod.outlook.com (10.164.163.158) To HE1PR0701MB1883.eurprd07.prod.outlook.com (10.167.247.23) X-MS-Office365-Filtering-Correlation-Id: d4fe6396-6ef2-4565-b6fa-08d45906470c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0701MB1883; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB1883;3:lNSIJxSLP0/J49iqNxm5TamkuHFWGeM4vzSuSvmyRh7nNZlJm0OIQpArIKfxim8NMuSfyLFO0XK2matbe0CNMbhKU2JXg1YBkAehmFQmftlMBVDf3FDkYUvuozakkC19uL4dUcm94oTF8nnpaFI8ZbRcNhYtwzF+5cfPaKCL6hDWolx894eSFFcQMnCpyuH59QXn3gjl7fJEAkq7RZ0q9aUj4oi9qsNrbtG5KQFNVAWN+Lu/n50UvDM6kqIUIHWKGAQIEO9IQOLnd7b5YdRDyw==;25:J+dtokFdvgXIPgwhUPjSpo66ytbOdUpR3OWEKxrUYuLEVQK60AYlarUyLE5uI0bY6D0E168wRztxGOTlF/uPsni2gzpAp1p6bktElGDG2G3ox0w4JlN34xiF4RGG5zKZ1dKKn0FHRz+fB+gZmY55IWzsWqhv+9rkBasmtNi4ViibsLELGrnsV5mBNCDvpWOx7lgo6yQbqUuE0r6HFbc+rI3LcPcSwMD2gzUKPNMfigHi5H+4FqpA8m6/gXMKnBRqGbvZ4AklYZBGJ01bwENYoW7y25vRELm6YOdzrXl1ixAe3YKSGcYmyUqz522SlqGTzf6Wwrg9bOD8r3jzbRWaL+B23e7HHj/yhxncMsadO1QNz97PPZelBi7IrCbffwTG20fbYHI5K8FAGYgLkGP3tGgeA6CRt5VJpHpS7dbh4w/0xFrX5SiDzSxX/CEbCghYkLzD+vsPiUzckpO2uprIVw== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB1883;31:U2c40k6wfq5bS7Lzz5Oeks5HiXYhlfXFOMwCbvUJKC7vBRVazy9vl0xM/32y9YVVbm2VmB3OFD3ltFTGu44+Ufb3HZDda4ZNEqc15bTxH2EVTWRPWHZxiIMiz41kMo6Z6Rf3vT2AVbJVRqMQBadditzD7WzA8Dn+pFQhJ0GWLXpaXscx8X5Y3c/1s5u+YTinZwVOHPHsWQO2Jjv0Rly0BYp3crnW9N60XwS6Oc/2WyZAyDFSE3+HRZFxnm+qTZ5w+YJm1BCjnFG9LX/aHqozPg==;20:RMl3+tQzqnNZvpR+klnhJtvZCav1uvbOnFcPnHkEqZNEcc02ACn9eBLdOUS9z1FRYjRT54gLa4HTUv64sry+Ncmm7cZdrDR/2xH42bQet7ITcE2X9bJSgYUOYUxY3RSf6dkwjb5QOvl7MbKsSab4hRydBUjxpgy65CXjDp/fFxpSyWWAuoAKhbF7qBIPUgPqyjumdVnN4EsDf9ABaNKHxZoIKshb5riGPZbG22jTVWNYZiXwRFVp1il2l7IWqf2qoXF6j2akonay+FmYYuo/qr0xiDW5TT7e8bgmVj+LIYboXi56ObK5sFI93BD5sIBir0/t8Q+MKs5S8DZGAWopJ2vBGe3SgmBFKFVVWkbAXoStwQ9E6fbJNGi3rnvdGcQ8Dnmsrmd0tfrrQfJQLu5NfhieKGnrp+cA1rTyRs65PUmHOlo6V4VhFiu1PgDXJOv92DY12qepBk6lbuikgIoW8FP3wRZC1kDEf0VKjA0Fgc8WvRlbYl5ach9d9Ecujv4g X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211171220733660); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123558025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:HE1PR0701MB1883;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0701MB1883; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB1883;4:kskmEAOUX0hJrvmH5xzJa291mNjBhCxxbjtP/r0aP6NLLZu0dbIjpb0enzs1r3gSFKf+FvAZ2P3a3fO6S8Xih4csmt/K/vjcmON75JZH7bPjZQ2C5X4kRvVdDsE/0CgmQ7n0hu6+0NpIfmbIuwoScbF7Vd9WQXCwyXcnmVpcvfxRBoHwrvVQHdGfa1QwW2uT54y4ibQeRxH2P7z2QYWiPh9yYaEEQ+lMkzT2DgpXBHbhWpzItGkhuiXmfKEkVVtonftLOMmErCRMLHN4O8t73aIyvQtOxZclwfWiXN+61lZWcws0A69IZkNXJffGAWlzWoleyQ+3WtJspwG1h/S0G/cWXOPrDi4U4A8fc/kYjkKEQGrtds/8Uqge3v8dpjcmqBqP3NbLpFqh2q/IyYrYyURUBMPD5wimYwbLnusG0ROQklSe6N82krGPHCMFkBh6oV+v+BXtgyB7HoKnzt9LBaJovrN+cS6wna98RIGhaVQv2WlQ2LjRQ2/oIa7CV0Z/I8CKBB/PJwMk3vvOvltodE341k4+CVIk30g8WJ3RZFDqEpuy59sXbcCz8mAymou5e4I17MugciSu9XE/mOSokSfU7vslw0eE3Pv1+019vTvhsSmBYzD2zZ2G8OLOxzAm2Kft3NM0wv0NaKfE8DsEYQ== X-Forefront-PRVS: 02234DBFF6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(24454002)(377424004)(189002)(199003)(97736004)(2906002)(6486002)(53546006)(2950100002)(83506001)(101416001)(5660300001)(1411001)(54906002)(25786008)(2870700001)(33646002)(189998001)(50986999)(76176999)(6246003)(86362001)(6306002)(4001350100001)(6496005)(38730400002)(53936002)(4326007)(110136004)(47776003)(66066001)(54356999)(93886004)(6666003)(92566002)(81166006)(6916009)(68736007)(229853002)(81156014)(42186005)(8676002)(6116002)(106356001)(305945005)(7736002)(3846002)(36756003)(50466002)(23676002)(105586002);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0701MB1883;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: =?utf-8?B?MTtIRTFQUjA3MDFNQjE4ODM7MjM6NFRyM1NDeEg1SE90bXRRNDRBTE5oZjdi?= =?utf-8?B?bGZUelBoejVVbnpDTFZkQUVyTDhWKzRkMXpheWdqa3R6S21sVHZZL24zdkVB?= =?utf-8?B?cnd6OExqa0plSngwYVZMaXB6VnFLc0U3aDN5SjJUR2hPS2Y3V1phRGRrWnpE?= =?utf-8?B?MkY4OFMvZ2xRZlFXSU1JdXlDOS9SWGw3WDV5dEVSNzNiL01rZ1F5aWl1ZzRW?= =?utf-8?B?QjdkTnF2ZkxxV1lMQ2Q2QVgwWnYyVHo5U3UvSzZzRThXSHBqR3d5dU1rWG42?= =?utf-8?B?RVRPK2VSb1ExTXBrTnpuWi9rSWZDckJ5S1h1UnladzE1UlUzcExEWFVOR2Nh?= =?utf-8?B?dnZNOEJic1hFSVhIays2S0UwZXBIMDVTaHREOXduUERUV3Y0QStZYzBlTEdq?= =?utf-8?B?ZllreGNOVmNyOVYrcVREcmVLb2hFQWF3eEtlN05zOW1namlFUWFOLzF3eDA5?= =?utf-8?B?N1E0VERWOTB5NnQrWVMyTFhBallQdCtzdUhrNVZVM2ZkdFI2YXB3RHNCUHJi?= =?utf-8?B?NGlvaENMN3ZTUWtPU2tqUDB2bXlaSHA1ZnArNmkzYjR0aXZLSXhxSkJkQllw?= =?utf-8?B?WmlIUExGenkyeFkxSDd2Qks4VUxhK09WM3hyL1dIalMyZ2tuRk4zLyszNHA2?= =?utf-8?B?UVNhQ0dDQkpTd1NxQUREUklZdVdHSE0rTVkyWmNRU0RFWFlzZ0hOd3A4aWJy?= =?utf-8?B?VFpzVnlyZlNSRDVSUUJGUW1QaFJBaTJoa3ZjQmtIdW1CNTE5SVREYzJSZ2lS?= =?utf-8?B?VTEzNjdFOU9FNE1RVG5WaEZCSmo2WHM5eWN4NDR2R0MyTGx4ZjMwUjIxR3g2?= =?utf-8?B?Rm5HSXp0OTA5dXFVbjdRNW5jYUIzUzNOMXJ2NTh4dDRYd1c0VXNUdm5jeDVW?= =?utf-8?B?VmJmZlNzSWNkUnRRVDZZOFFFTy9LSWFwUW1HWW9hY3N0eEpUTFgwVnNBbmYr?= =?utf-8?B?Y0FXVFBiZGs1TVlWSDJWeEhCcnIxUzZBOUZOclQwdlpKSkVtejFscWlXQUky?= =?utf-8?B?OVFZSnRqekpxRXVoV2hndm5YVVFtamlkMFI5NXRFMjJTTFZFQ2FaazlpNlJw?= =?utf-8?B?b3drRkswdkpUTXdTZ3lMNFpjckd2Vnh1VC9sTzJtS2VxS0U1c3R3aFptRk15?= =?utf-8?B?RkhxSU43RTlxVGRERTlhVnd2bUhOMFN5UFhnemJIbXpMY3BuTnAwMXJBUTZq?= =?utf-8?B?ak5FMDQ4Q3dyNUZvcGZ6VGlneGVSQmxtLysrVFdNS3pIcDlpY1BVNTcwZkZE?= =?utf-8?B?VFNHZUtOVittWldyRVQ1dDRGNk5VZVdqa0ZXZWZuUHAzUXVxZWdJQzVSU1Yw?= =?utf-8?B?eERPdTNwdjVyVTJqb2h2L1UxWWovbDNacERrV0pWZmtDVnN1bTR5ZjZrck5Y?= =?utf-8?B?Ylc0bVpTcU1pZ2wvTnphMWpkdWo0amp2b3Y5SnJMODA0L3l1UGZRQVNoWUJn?= =?utf-8?B?UzVhNXM2Q2R4c2JYWFpVcEFXQllsWU0wZ0MvQmxseFhINUtvdlpDdW1nNUtU?= =?utf-8?B?bWIwWlk3N2Nxc2RFak1VVDBTUE9pd3ZzSmtxZ0N3VC9iazh2TEM1S3Q3SVJk?= =?utf-8?B?Y0JPeC9YV3N4NEFhL2NQZFVHN1YyalBML21ucHRwR01haVV1Q2VjRTNsOEVy?= =?utf-8?B?dHFmMXdxOG1CTEZQWW9GanJIRkc1VVRLcmZ3M1pSZWtZZWYzTHoxRDRpRUY2?= =?utf-8?B?bUJhVUJSenFhYUYydXN2T1dyRjNqNlZVOExDQS8zeTUvMzV5cVJsUTh2K0du?= =?utf-8?Q?iITLbc7DdY/mb1HwXKFviLVhtlQAGYGy4OidQpA=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB1883;6:VeT27V/i/vVntQ9GgsPfzSV3sGUXV+bYpoqHs820eJirIYggN+E2ityOOOxTItOlTTEfu+GePqzoO1ormOR2hFHFcei1+BqKQysY3fE1//IA4KfuWZSpbEAOG0hyUdNgeq6uBPvCgTtyv3djrNuDbt2vzYpxOnpQy7oYajIj+wLevs4nnKqmGcDsPEGfgfBdUR6B3njxtOkyCnFeHbdMbKNtJOs+K89FIRjJXJqlGC8TNIMa5WqPsA5SjCfsESJNMp10L+XFSYPFS+jUBJkaG7BQUXmfxfz1fCAg6nicReGDw5SEsA0ntCf5q1ZU3F+fICQN45KsZ18odk7nEZGhuTwAeRPtnwtKAQblmKm+poxUMzsR3oPbqjcG0FY+MAd/9Eec1Bw2Lg5966izU8pLbQ==;5:0/sshM+/BM1MFcDIWvIhN+RCPYcJw9DDlpzevIp0+F8Mxe+TdBmGfL4KF8LDQKDJF7K9CSq+PaDisDV2Rzr8sgytxV7KD0yfxuANugiPfwBxPnudtF4H6GJp383l5qRmY1brovvYcwCyieiExfMuqQ==;24:orGDUeu2x+UT0lWcQHV+mxQBIDMwM+YNvee9BNvDCboLSNyoSc1skZ8tdm0PNp0INcjoKjJV+haJ+41TG3MZtinUIg5kUm2sfWE9foYyoBQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB1883;7:Q2lGcxqGac9wxoYQQ6JjJkUiqUw01Cz36rD6QS830ztbMv/39iaFO2LtnVcPPY1my7UiqZTV1oAX45f1Yx3X2tSS/0hsmudGnrs1nbFbLlPXrH5zLjUb47TFylkGLIw0bwNJWs6K10y5xzCNjriIua6KIhl29DVAPKjw2lhp1O/Yq1VzS/OvSfNwWfBkNNVgPqMEI0pMPpFVnP7Bc/o4SbgAyGR50YhWGT2ADnu5M6+Clx61NPbAjdlEF+z7Fv8+ZLcTA/XIkDI1TxQFeSUNxsTtA2RWItE338Sn8ER3qCoM2aePveLGN/YrLO9uR+y2sYVf1EwN0jSx4de/LvhgIw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2017 20:31:24.7121 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB1883 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-02/txt/msg00518.txt.bz2 Antoine Tremblay writes: > Yao Qi writes: > >> On 17-02-17 19:17:56, Antoine Tremblay wrote: >>> > In ARM ARM, we have the pseudo code, >>> > >>> > boolean InITBlock() >>> > return (ITSTATE.IT<3:0> != ‘0000’); >>> > >>> > ITSTATE can be got from CPSR. >>> >>> Yes that's good if you're inserting a breakpoint at current PC but >>> otherwise you will need something else... >> >> In software single step, we calculate the next pcs, and select >> breakpoint kinds of them, according to current pc. If current >> pc is not within IT block (!InITBlock ()) or the last instruction >> in IT block (LastInITBlock ()), we can safely use 16-bit thumb >> breakpoint for any thumb instruction. That is, in >> gdbserver/linux-aarch32-low.c:arm_breakpoint_kind_from_current_state, >> we can return ARM_BP_KIND_THUMB if (!InITBlock () || LastInITBlock ()). >> >> Then, in some level, when installing software single step breakpoints, >> if one breakpoint type is ARM_BP_KIND_THUMB2 and installed >> address is 2-byte aligned, stop all threads. > > Yes that would make sense but I think we can be calling get_next_pc > to insert a software single step breakpoint at an address different then > the current PCs next address. > > See: https://sourceware.org/ml/gdb-patches/2016-06/msg00268.html > > "> If we only remove before reporting an event to gdb, then I don't >> understand this. We already insert single-step breakpoints when >> we process the resume request from gdb, no? > > We insert single-step breakpoints when we process the resume requests > and threads are about to be resumed. If threads still have pending > status, single-step breakpoints are not installed, so we need to install > them in proceed_all_lwps." > > This is still true AFAIK so GDBServer may be at any PC stopped on a > pending event and need to insert a single step breakpoint at an address > unrelated to that event so in that case CPSR can't be used... > > Thanks, > Antoine Oops looks like it had been a while since I checked the get_next_pc code, so we switch the current thread and use that PC so it should work. Disregard my last mail :) Looks like this solution is a good way forward.