From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22464 invoked by alias); 16 Oct 2017 18:23:29 -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 21946 invoked by uid 89); 16 Oct 2017 18:23:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.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=thrown, vein, HTo:U*pmuldoon X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 16 Oct 2017 18:23:26 +0000 Received: from ESESSHC013.ericsson.se (Unknown_Domain [153.88.183.57]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 35.DF.26775.B19F4E95; Mon, 16 Oct 2017 20:23:23 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.57) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 16 Oct 2017 20:23:22 +0200 Received: from [142.133.49.59] (192.75.88.130) by DB4PR07MB314.eurprd07.prod.outlook.com (2a01:111:e400:982f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.5; Mon, 16 Oct 2017 18:23:20 +0000 Subject: Re: [python] Allow explicit locations in breakpoints. To: Phil Muldoon , Keith Seitz , "gdb-patches@sourceware.org" References: <04ccc2c4-7827-eedc-d8db-a83a0167acb6@redhat.com> <58311250-9ab1-39d1-99b6-07478bc8c2ab@redhat.com> From: Simon Marchi Message-ID: <4768c7ad-cc3d-5702-fa93-40e9760d4ee8@ericsson.com> Date: Mon, 16 Oct 2017 18:23: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: <58311250-9ab1-39d1-99b6-07478bc8c2ab@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BN6PR1201CA0007.namprd12.prod.outlook.com (2603:10b6:405:4c::17) To DB4PR07MB314.eurprd07.prod.outlook.com (2a01:111:e400:982f::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 029dff3e-fdf9-4ab3-c256-08d514c2fae6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603219)(201703131423075)(201703031133081)(201702281549075);SRVR:DB4PR07MB314; X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB314;3:e3bUt5u9yZSbJnsd6nGeM6Sra+1pKlW4Yyd4V/hocYUOTOnGgZCWaM+x9cQKnMVYM3yeSb+N1I3KGvRzYDdjElr8fahzUQdR7LIXW32UHUJR9MFgDn6iAiSgBvs8r+UYEcAj+fCaj3MDFCBs0SZbWE4k4E4IXb/8WFVJpgeFDIwrhubLcNQoi6tHgr6zqJjP1nBZsb0ZGWMsF+14ugyWu+sDEeS7iYCFoNwy/GMyGcpcFN7nfLdg05wLl5K4PtG9;25:3YPhRgHdNZvsNRTAYto7li1Di1jp9f0DZw/V5Q4YpvfwppQ4WsWwlAEvTkuxIGOr5SVdHi8PSa7rPoHCtj6Sxy2i+5wSfuvsqf3AWI5p/e5LR+QZtDwiaLrl6Z8/3OAAAITILMW4Tr40x00l9Ap2k/FF8XO6p+4Xc/NWiLYVQJIRVjYsq61bphSTL3L+sNsL4bvx8ABkx9fYy/KuBGKrwMMPCzMFYyD5/4X5BlhxwqZcD8ZkKP+FP1IksbiFyX1dzpk4x6B0J5n++kcqUr/V79TGTDVstJB92eI0c1dzmST3u1lm08kHbqpYSxEx8I6rjAFLRMX9X6sLscCPryu2O+48dGULC/NeB0y4ZVl5Jgk=;31:cILM2z36wowVS4Ik0cxHloau8aQsLq+pxU8rUE7yFU5Gr/rGn3RCAe4O2oPHqr/Cmu2bB/G/IeoNc+hgPLEj6QHXGh1FFo8mB9SUzNkmy/D/e1LhReByV4dtoSM5xX/CvRAxupGjuIx5baag0dRDLa0tyNeHXf34AaOq8k5xqzcmSrTc0srp1+8e3Aunq+NkiXLbIV8EC1USiNXiEj60N8vnRb6r/X76D3VbRxYvPps= X-MS-TrafficTypeDiagnostic: DB4PR07MB314: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB314;20:7vrLIX0Yod1EfMW43rIkWammYvNN7fgVYQqLF/CXn8UnmIwJ5FImK0XlPmdK5IH25cRqah9qImP+C0v9Xw5biCuZgg2OD19HOKr6+lACGU4k5ODh0wvE9AcWXzovvChXLzEnt+yBKRlYqTPRp+43+VQs/5Sk52yoV6MVr0RK84ooRDn1Bwo6Qj02LpRIpusXtr7mbAGrDr5oBABlZDVhPPdWfqvbfX3Ds1bgtY2nGBjvYuVBJDWaC3TI3ntB4jty0T2TCtI+SzrGXcOR2JSmwQvUWaSdmLgUXKKHrr8faSk9f1re3Com6hOyDcQVQXNCMf1MZ9GHx2J2oh7TwgL5CdBCKb88rjdrDEpt1T5TvcysiE3XAft1FXWFValAHRwk4YvlPuM5OlK44onbWMn8mX5sFkkcAC2+eryRxgWBuMbZXZldaikaeZCwDNiA7Jw9VOhP6SrMZEAaQMVCBCRK19tCPjv9PpJ1K+MMVH9PQP+Tqg2YC5XwEgm0cXrnjJxj;4:XvXqYs3bcInMiGAu/3IsV1v5JcW5haczjoq8KHjXiU64JfJ5XaquvUu/DocIpCb/HiaUGoa/lXsqViydf6alPuZTNYupQtpBxOn48Oo4t1F8Dv31VwFLd6Y/G9NKyjWJ+YqOTfFH+EJyG2+aagVcJfXLoEUwpmPP1zYNkb2469SZA1RnRll6v+cMhRdIELz44eMY0Fn3B14NcdvpsSJRP/gwGUF+9T38oofWBFekk3Zcvls/MB4qxcOmhcInuZE+ 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)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB4PR07MB314;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB4PR07MB314; X-Forefront-PRVS: 0462918D61 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(376002)(346002)(39860400002)(377424004)(199003)(24454002)(189002)(377454003)(16526018)(83506001)(16576012)(53936002)(2950100002)(189998001)(49976008)(23676002)(478600001)(58126008)(316002)(33646002)(65956001)(6116002)(97736004)(106356001)(65806001)(2906002)(8936002)(110136005)(66066001)(25786009)(105586002)(47776003)(230700001)(3846002)(53546010)(229853002)(86362001)(81156014)(8676002)(101416001)(68736007)(64126003)(31696002)(31686004)(50986999)(6486002)(76176999)(54356999)(81166006)(305945005)(5660300001)(65826007)(6246003)(50466002)(7736002)(6666003)(36756003)(2501003)(78286006);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR07MB314;H:[142.133.49.59];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: =?utf-8?B?MTtEQjRQUjA3TUIzMTQ7MjM6QWZPSWQ5T2ZabXAwN2ZKSlhJaGJabFNXR2Jp?= =?utf-8?B?eElha2owNUlPb2Y1bEltb1VaSkVMZWdQV2J3akh3MDJtc0lBNHdGWElUVzU0?= =?utf-8?B?NitnZ240OGFBU2NVVDEvZFgyMzJjZ2hrNFcvM1R4T2V6dEV5UXhGWFNpMDFP?= =?utf-8?B?a1JrMmxKeDFaZXdyZTByVjhReXdNNkJxdERnVWw0MFdqWmFFY0VIV2dwU21K?= =?utf-8?B?VnhmOGRDaFI1OUJyS09URk9jVVlBcktPMUEvOWNzRmtPR1lqV0hHRWlRbEtt?= =?utf-8?B?WkZTK0V2VmQrZXdwUmg5U2NYOG9hQ3A3eTE0aWY2YTlRMit4cVBlTVZvQ2Q5?= =?utf-8?B?a2J5QkFLT0NCd3QyYTFQOEMwM1JHNlRsVjRGQ3lBTkw4djI0aWFTYXZTSnlw?= =?utf-8?B?YUl5UllUV00rZUt2SGttVzF2WFhmSDZaZDdGblNhTVFEazVTUnBtTmJvbVhw?= =?utf-8?B?OEx5OWFXbjM2MFhlT0dWekxENGFXaWNmbFZJcURHL2ZrQk03MWF0SXE2ZU5B?= =?utf-8?B?QjdZT1dhYndGMC9mTHVycjgwN3hxUFhnUUdYVDZ0bTJlUEFKUmpYcFBGeE5D?= =?utf-8?B?QVRwQ293Z2hvVWFQWVBJdkFnWm9UaEVwOFBzeXpIRTBjbzZEdGdYS0lRWDU5?= =?utf-8?B?UHVkT29rb0hpOHAyNzhleDF5MGxPVCtpV0FMMzBuRW5OYld6dW1yZlNvclRw?= =?utf-8?B?YlJLSGk3RVJmVm44eDhQSmN5UlFzZ2ZtSm9OUm8vUlFCTkg0TnNKcHlLMXhO?= =?utf-8?B?WE1YbHBwSVVBenRpYWhabWJ3U0h2bmdScXh6c2FxaHpNZkhGdlR6U0lXWjFF?= =?utf-8?B?ZTQzUDhINVg0d01hOHM4UXd0MnZ4VGNva0RaR0M1RDJZLzFTSmdMQnROMTRs?= =?utf-8?B?UTJ0UWRJNXFvMDhQYytDSWJleXBLZDFLSFlyNjRmbVE1TDNKcDlNM1hBVkZh?= =?utf-8?B?K0lOTHJkM1VLanpqSjh6bG9ONFhMcmc0ODdGWGw1YjNMdWxXbjlnQWpLN1FJ?= =?utf-8?B?YWpZeXcxanVxZmpFdHQ4ZHd1d0RTeldPanFvWkdPa0lySFE5QU5nL0ZQNGI1?= =?utf-8?B?ODFDS2NyN045K1puWUpkNC91c1pVWE5GWHR5dHdheVNQd25HZ0kxTklMUUM5?= =?utf-8?B?a3d6LzdESUR6eFRuSSt3VlBnZzBXbERSZWJSSW51dmhodjRtL0k1S2VtRit0?= =?utf-8?B?eC9WNW1DUHV6Z1A2bmN3RW1LWjRRVW1xQWtBWEVNL2lTRkhCYkFKWGJBWkhq?= =?utf-8?B?eERkQXNudmdNU3VDN3NUVk5CU0g5NDlmSXM0Y1Babm9uT09CRHV4dC9rdjdo?= =?utf-8?B?dzlSRjVOUCthSHR6QWJ3MnBhTlI2ZEFCeG9YRnA4ejdxbVgyL1R2TStONjJB?= =?utf-8?B?RTdENE9ZbjZxanVPK0dicmJTazhmdnRNVXdzcjNEZkc3MHBQMzVWY1FoTjZu?= =?utf-8?B?bFVlRGdhM1MvMWNkNDBpck8vT3VMSmM1YUNHMk8xRkdqMHBRdEgzZUsxa0hF?= =?utf-8?B?UC84dXM3V3ZBZDM4ckh6NnZ5WHAya3A2MHB0OTkvblBNSERJdktud3pQUjZt?= =?utf-8?B?NTZQbStBSUZtcEF0MVRMUm10NEM4OS9SbUorTDBVZHY3bCtlR1l2d0V2YUx1?= =?utf-8?B?ay9KRFFWZnUzU2d6WUFYc1RoN0NPSkVMbWt1aW16K05qYzRYZ25pTmJDWEVa?= =?utf-8?B?NUt0TXpuNFV6TE5HcE5helpQNlpJQ0tvSHVrODJCcXEvdTVPb1Jid3ZQWFNU?= =?utf-8?B?enlwbU9BQnJZWVFCR212Rlp6T3RJdnBTcjhQOWRMeUQvd3BNTE0zZFEzUFNB?= =?utf-8?B?N3lHaVQ2MFRmQkZVSkRGOGxZRm1SODN4cCtPcndaMkxCbmNQTU1SUVhOaENl?= =?utf-8?B?eW1aNCtvNFBhdWdKSUVVczJpVDY4eE5ORWpZci9qbzBLcDFoYldXOGtDK0lW?= =?utf-8?B?RElzVTlCWGc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB314;6:pnH90Yc5ZvI3zHsFM+YKe+AlonXnX6yHpzQdrItg6S6ki8otnEBhKf9XQJxXo2JvnGJNXt2Ojrztsg78RYuynUuacgqKvywD1uFsLYk2DX0hP9dZ+XvhQ6kY4NEs/DTFnUjGD5aaaEhulIkS1u07dF/DkTiQWke9BoyIBAltuGEvZ7WUYCs9Hvi8N0WGww1MET4j2/lfCNjEzaScQkYYC5W0wcyJSe0JhcM/7UduFD2M86evUSbw4WnXTRz0NvDDO4JjzhN7WJrssvT2gJ3s7iaOa92rPm005iUVuHIKXh08Of37kyKSV27RKm359gpMGqY4rKaH8RC73y34NADpLw==;5:VAoXU0/dhMWzcGy5sEkUuMN1baiKe7aM3WJhfSJuOobf1NeeTy9feU+HIpILuSXyW1Dllv/nJYPYVuy0vqdqhHRck7GZV2jMDMcueSSMjiY9QmdNNdnhRFinsTrgQQQs60faoNvDvl2PAuq4BUEW9KB8u3/41LiF9+K5d2DGrR0=;24:gmqFr2J7d8qOfHTkkAbG9pA9bBpyFqPwfyCKSX4iLQ3E6Wzc7cKhwvmjVf0b2NJiASTElJWcWZyA1D5DDJxFPq/mF4xAxMk98EuzUn5Yg5Y=;7:Zcqh7NEQoTenPxI6VwwsxnqVzad2tiRpqtQgYE5MWqLRoDGbpZU6flyMcxIMYnXCH64Ft7t5nXdn4ss/HD7/NOLhIyGoq3LvGdPrl2eweZz8wAji6VZYpvnFb8FE37jiDpI5TbB+5f9wp8aCM+gNehA+jarTLSnjdA3VW8684QlHribnYHIQUjtf4gDwFmcqIkX2cEdPyDwz9eduuYGf+o1RvoYUF+FXoC1jmw6fkL4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2017 18:23:20.1712 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB314 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00454.txt.bz2 On 2017-08-23 02:30 PM, Phil Muldoon wrote: > On 23/08/17 18:51, Keith Seitz wrote: >> On 08/23/2017 06:58 AM, Phil Muldoon wrote: >> >>> diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c >>> index 6156eb6179..8431bed939 100644 >>> --- a/gdb/python/py-breakpoint.c >>> +++ b/gdb/python/py-breakpoint.c >>> @@ -681,7 +681,7 @@ bppy_init (PyObject *self, PyObject *args, PyObject *kwargs) >>> case bp_breakpoint: >>> { >>> event_location_up location >>> - = string_to_event_location_basic (©, current_language); >>> + = string_to_event_location (©, current_language); >>> create_breakpoint (python_gdbarch, >>> location.get (), NULL, -1, NULL, >>> 0, >> >> This binds python interfaces to the CLI, and I don't think we want >> that. I would have expected (perhaps naively) to see explicit >> locations supported using a more natural python convention, such as >> using PyArg_ParseTupleAndKeywords. > > My original implementation was that. I had function="foo" etc as > parameters to the constructor. The problem is with the -line > parameters and relative parameters. So line=+3 won't work in the > Python parameter sense. So it would have to be line="+3" in the > constructor. If keywords are all strings, I'm not sure I see the point > of parsing them as keywords when you can just specify the whole string > (i.e. gdb.Breakpoint("-source=foo.c -line=28"). This is what we do, > more less, with the current constructor: IE > > foo = gdb.Breakpoint("bar.c:23") > or > foo = gdb.Breakpoint("functionName"). > > So this patch allows the addition of explicit location parsing in much > the same vein as we handle regular breakpoints. (That is, with a > CLI-like interface). The gdb.Breakpoint class, for better or for > worse, is based pretty much on the interface to create_breakpoint. I'm > not adverse to implementing keywords; it's a little extra string > wrangling, but I'm not clear on the benefit? The gdb.Breakpoint class > has always handed over the interpretation of breakpoints to GDB using > the CLI like syntax. I can see why MI separates it out, and I take > your point well, in a machine context. I think for Python it would make sense to support the two paradigms. If you are writing a Python command that ends up installing a breakpoint, it would be nice if you could directly pass what you received to the gdb.Breakpoint constructor and have it parse it (including explicit locations). For example, (gdb) special-break -file foo.c -line 17 But it would also be nice to have a keywords based API, for when the line/file/function information is already split. It would avoid having to build an explicit linespec string just to have GDB parse it after. In terms of API, I think the "spec" argument could be mutually exclusive with the function/file/line/etc keywork arguments, which would be added. An error would be thrown if you try to use both ways at the same time. About the line="+3" issue, because this is Python, the line keyword could probably accept integers and strings. And if it's a string, there could be some validation on the format. Simon