From patchwork Fri Dec 8 18:26:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24829 Received: (qmail 60202 invoked by alias); 8 Dec 2017 18:27:08 -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 60189 invoked by uid 89); 8 Dec 2017 18:27:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 08 Dec 2017 18:27:06 +0000 Received: from ESESSHC007.ericsson.se (Unknown_Domain [153.88.183.39]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 28.E6.10723.779DA2A5; Fri, 8 Dec 2017 19:27:03 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.39) with Microsoft SMTP Server (TLS) id 14.3.352.0; Fri, 8 Dec 2017 19:27:03 +0100 Received: from [142.133.49.104] (192.75.88.130) by AM3PR07MB306.eurprd07.prod.outlook.com (2a01:111:e400:881b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.323.4; Fri, 8 Dec 2017 18:27:00 +0000 Subject: Re: [PATCH] python: Add qualified parameter to gdb.Breakpoint To: Eli Zaretskii CC: References: <1512686013-24658-1-git-send-email-simon.marchi@ericsson.com> <83efo5wbke.fsf@gnu.org> From: Simon Marchi Message-ID: <015c4c07-8a85-e54d-1179-497bf3203175@ericsson.com> Date: Fri, 8 Dec 2017 13:26:48 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <83efo5wbke.fsf@gnu.org> X-ClientProxiedBy: CY4PR18CA0053.namprd18.prod.outlook.com (2603:10b6:903:13f::15) To AM3PR07MB306.eurprd07.prod.outlook.com (2a01:111:e400:881b::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a00592b7-8dd7-4980-2238-08d53e69462b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307); SRVR:AM3PR07MB306; X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB306; 3:lS2GGuBteVGu6cR1JK7xXjucM40nkAVuZ0WMjxWejiewsdPcNczNDDo0wi3hLLoVqcyNfX742ZKz0w2jZfzizqL+XCqtd5XbtSrajVvK9KHyx/lOZujirwNzShMlcwfAZBuEJ5Z2YwgFA5JMstJQEPAuHLap2rw6icb3DEKgj9SjYJppeVuaJmvLx+016L/eveRABuhV2LOX7giQ3HFu6YVkYMkTo80Ek4NHrpbEIYINGmR9Di4fA+4J8GXj3HGu; 25:cZeJg2tKks00YoKWtg836QCUbsOjlOjcjoLPrFfLiFlbMpOpNHdTImuhXiUkkLl4SfksRTzFSMHO00ujnvn4htLwSYM7+mPQlT0OKBSedxd7K3rOYTjMUufe91Cvql7rkOneEEDDF6P+R+U6P6yjv7T77xdmKvPzDrHOkSVf+6an19mDGqqmqT1HsWYo3p249TWW5yxl6lJe/0q+xMbUeTFFF595d36jA8JHbkicT4jeZx7GT00TkrLGBUZGgG9vuYgP6LS+Td+SJdfDo/Da3nz8yAlMAbvzTyeZfKxPUvTRR+Q0XZKFryWqYQe+uYYjCutKbvmw4M0MXO5spjCqGQ==; 31:62SWHnzMADgvD7wjscAsKKmaA8WaMCqTvceI525+9y03jTPdkBRmsGwJwV9xqcONkqFko60ninsKINGpJPmf95cw5Q1xTWeGGYn8sCglBMwGoJWNhVG5njG/mkBourJurEutW3vnxuao52dQyZl4WSv6Brq5Fy/1TU8QmJU/eo1g8NfzEMBvXfYL7v4cCd5+6TubutlWBDpw02e8g5VI1i4nu1+pQq8oafBmx/TgmCc= X-MS-TrafficTypeDiagnostic: AM3PR07MB306: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB306; 20:hP9LujkPmY29pdAbA1MdKermd1z0O6leM8Xnn93InH0htfhS+j85dYLejIKiY0YHU0MLNll8cPz+/QpSVWBk1lQml64E75rmD0MyWbFVAtpDIcr/TONWdN9nJc/45kQWewCqk5OO3lBTufVdHF119YFjUWmGYuvkPv1w5CJNoQh/v9AAmI4dPWgMSOX6GJNMJNPuuyaXuqj04As8q4j+2IHxzW+eb0yyy84SKCdQ1y6YTnWQAhfrVCPzZuyEItISY2llddlSB6RJAFzAz/W3QqJo9BvjtwcMtbOErrs5s16p6qYgP2WFVzpD0cFP/HD29dDNOzOx8UvntnJvsarEgoXAza+A+FdXa6MVVt7dj4my2CV1NCrtDab5cwCGRbg+1PJw+gNf81pxg8IJUTydKKqjg746Cq4D1W3SZDDa6t/ypcVt0DGL1Mhq6WE0XZUXByv10V2wSD1rhSHJi5HicPfyfInltJgtvsdbSSMw7NIoU8UOD23J6mJslpOJh0az; 4:HhnJJgh71u4LAWi28Yf5YeWtD4dFBP09E02X/ii9dTQFXMYExRZVzVM2fTfa7/2NBrYbJM9nSDo2qrlwi2Xa8iC416l5ZRwlaN61aucBu20lLa1dNLbDTYIGY5rjrdsLIgeUCknudEXnwTxcFAIkb/TZpoE+R+Ialh6MSE/sT2PoULqS3kGa0SrLUHErmZmts7TdTxAzmEUCXAHjcwJC5C0D9hqIYHWEhxmsO1Nun14P+CNc04gz52ljWBaKkPpv0TX6nrF9NvdrOSpR/2OQMNPSuYBpsqzGw0ysJ+gOeIt2ffiZVqUGH1tb4NsMc8D0 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(37575265505322); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231022)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148)(201708071742011); SRVR:AM3PR07MB306; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM3PR07MB306; X-Forefront-PRVS: 0515208626 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(346002)(39860400002)(366004)(376002)(377424004)(24454002)(54534003)(189003)(199004)(57704003)(229853002)(2906002)(68736007)(6486002)(23676004)(53936002)(47776003)(52116002)(65806001)(76176011)(6666003)(6306002)(65956001)(31696002)(58126008)(86362001)(66066001)(6916009)(97736004)(49976008)(16576012)(316002)(478600001)(16526018)(2950100002)(25786009)(106356001)(50466002)(81166006)(105586002)(4326008)(33646002)(81156014)(8676002)(6246003)(65826007)(31686004)(64126003)(5660300001)(2486003)(53546010)(3846002)(52146003)(230700001)(6116002)(83506002)(305945005)(36756003)(8936002)(7736002)(78286006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR07MB306; H:[142.133.49.104]; 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?MTtBTTNQUjA3TUIzMDY7MjM6NGhtWU1zVjVMeGE0QVF5K1FJL2tBRWhBdHZ5?= =?utf-8?B?enV1U09qOVRyY0pFb0R1Q0VzaVhvZS81bkluaDlhbXhRcllrT0UrRFNIcENm?= =?utf-8?B?M2U5aTZqaU12NDJ1NXFHTDRmLzRCMDhieE5POUkwcTZWSmYyOE1jbE1tQ09j?= =?utf-8?B?b2dpT2FsR2pnU0Z4eEtWNmc1U3NoT3dGclc0NEJkY2tBWU1OOXV5aStWbEMx?= =?utf-8?B?YWIvMHpobC9aa09OWjhON3JRZzFQRklpc041WmcxYllmcEkveUs2RnBDUTJ0?= =?utf-8?B?ZDdNRVFQejhMVHlPRGlIRWVzMG5DNWY1WVY2RjZQYkFHaWN1b3IyMDQ5cSs3?= =?utf-8?B?MHF5dmY4Q25mTmFSL2NVNS9oU3krOHFOd1JCVktCem5ub2pEazVuQzBEbVVq?= =?utf-8?B?VDd0NXVoTWhGeDhsbXNrbC9iWHJ5QnN1bzBkbkU5RjRCejhmR0ZyRmdkYnNz?= =?utf-8?B?ZXFBT2FpZDcrcVRtR1kwekZkNThadWN0c25ROFlrN3NreGlSTjZpYURmWVNk?= =?utf-8?B?QUFSSDdjenNqbnhDL0R0UzJXaVp1QU9MM0VTMEtsNld1N2xDNCtDRWdlVys4?= =?utf-8?B?ZDRJVWpVNjc1aDVUbVFhTVFQN3ZTLzFGZGdaMnNtNElPNldCZW1KS3lNK3VM?= =?utf-8?B?MWVrL1N0ZWFDWHBCRkV4ZFBYMGpIR0lJaGtFcHhPNW5ObnIxb3puMmNiTU9W?= =?utf-8?B?TmlZcEU4NXlLeFhtSUN3eGUyNmhBVzA0eklzTi9nOHg5NThKdW1yWUd6cmgv?= =?utf-8?B?KzhGdlZMSllCWUVrWHdZbFUzQVVwZlpDRGRTWVA2SVEvUlVvanJxYU5pSHBh?= =?utf-8?B?WlVhUm9sbFFZSFJRYkdXNjVCVFBFSUF6YnBGQklkbEZlaGovRERoaFJzeHZG?= =?utf-8?B?TGJhdGR3RzlEM0N2TFUzWFA2dC9DaEdjYXdZb1IvcjRQWkx4UUxwb1ZDRjNh?= =?utf-8?B?d01iTk1CUURQMEFRTjNkeXRSS0pRYjRhR3AyZUdYWDJEclRKNi9JKzlvOVN5?= =?utf-8?B?Slp1eUpkY1p0M0dOTDRQTldib2ZHdUtydzN6Z0l6Mm9DQVl0bTZMaFBUVkFI?= =?utf-8?B?bmRCSHMvc1FCVXVJb3ZURUhhZEg2czViTUVqOVZZQzVFRis4bHVaTlFWZjBP?= =?utf-8?B?TUhRYWlyejJiK1lRVWNRa1UvcHV1aW5lNzVFbXN4aTlwSXlpS0lINElWTkRC?= =?utf-8?B?ZDBZcVk5dnlBNW8rdU1DdUFBWjRMN1VlcjhsWXp4dDRmSm5oazhOWlhaWGpN?= =?utf-8?B?amxkV3hoeVRYUGs3clowSEJmaU0zMk04Q3d1Rmt6c0x5K1pDWkRtQ3VjeUVu?= =?utf-8?B?OUNCeENOSEJHTHhwZzNocFlHSEFKeUVYMWE3MWx5MkxsNlMzLytFaFlsL2lP?= =?utf-8?B?ckJYRlVUKzRuMUtYVy9KYjdaK2hWNlJBck5NejcrbzhVR3ZuOTFXWkM2ZVhE?= =?utf-8?B?a2Vkd3dhYzh2NnhXbnBUL3FnUG9xVllKNHY2Q0xjZVFDYUZ0YUZMUEZod1do?= =?utf-8?B?N0gvL0cybDBJTjA2T3pLekphT2NQemFOV3Vrd3JBSnlBc2dIVlJJckxnQ0tw?= =?utf-8?B?d0c3SE9WRGpSUG4wUktadHRzL3V0eTZRT2NOYlRrT3krNzVWYnJ4ZzFmVHF3?= =?utf-8?B?N3ZMVUdSRmZWODh2czRDUUV2TmZhU1Irank4US8yMG9qa0Y5UjQ4amY2bmhT?= =?utf-8?B?YitTK0x3OG9mM1VLeVpTZStmMEttNTdTUHphNHZaUGQvTitHaXF5K3VhZUFp?= =?utf-8?B?MWVKbDR4ZFk0enJ3Q2pCcE9wcENvdEVrVzVsd0dxTXNTdzZ1WFRXNXdwM0Zw?= =?utf-8?B?Yk1zYmpkRks1L2htTUwzcmF5ZnVwTkdONm80bzhyQjBXVENVcXlndEZVSlJN?= =?utf-8?B?WXBXRlFrUnp1NFcrd25jeFlBRFNkQnR3U3lCdm9CN1gvTERrcHVTM1BwMGhL?= =?utf-8?B?dnpnV09VdWc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB306; 6:p9e7H9vxfGthIs/6yB2NHp/6CDFVhs6TaxaVRJhRHqOym2lgwN8A3MdKewX6iy05vTZ+1IvPI9pO1jGXap+ydLeUp0ozvyEXbLQffj7pa7oX7+O9dlGx/IUX6HEtZhqAbShsoC4N0SBcKmvN1tTRoHifI6Rvxu2Zft9RuFvVqfYkNHfatxfuZwUdayM0a9CO23Gc/P8jtwExqYJD7ij8lFJqfBeqZeK/CB3jQhy7qHJoSKxgk5vEgStJ6HtoztRLcP6R82lnUrBwVM6ruO5igvQHyTTBGdd4h65ONk3bQbXqGDnDlr3IJdWwmA5d+Qd7E30u1gVyQoQHIUGRCo325/mvsc25awECv0ALHgfgdeM=; 5:IpXNrfjEvbsxVe/cy8spB1JhcvjhRiHyo+JgFG7457ME6HgKfny10eLjWwGeRG7DcVVkVbZ6v4PYU5s5g0bHhispx1LurhHgxOl7w8ytkTMRP0cqF52lY/io6IV+BqVktdqqNqG9dHIvSq8jxis5cyJiMRb7Y+li49vIClCf2s0=; 24:Iq1MFWCb0qbZq1Gl06cPUBHJ0b5tz4nxrOwWSfwTRX7xCdbx4NwtTwaDJ9N4ek4vl6YtB7/zaVANOz6jRDLd+G1PMlDK+06tdufaEA8NBVg=; 7:4tr82L27h2LtPeBoH3ubxvwXr0x6Sxsos+PNWWGAD/spKbL+tlOxgpW45KGKypxIoY6GK3hAzmXmsi2eysD4e6WEMaY6g0ck2Or7YrXYO2Zzx5ka0G7y85O0v4kEUJ8tHNNbT0YA8GUyD/2bBP3BejtXXXAcg8Jm6sAtyQPo/b50+sP8vwPCdzpvDG0eicCZLZC3SjprUdlpSjHJpiGEZf0kgy+vfRlyYi9WQfeKpIgpL7KadXV/zUlqQgN/z5mv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2017 18:27:00.4232 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a00592b7-8dd7-4980-2238-08d53e69462b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR07MB306 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes On 2017-12-08 09:15 AM, Eli Zaretskii wrote: >> From: Simon Marchi >> CC: Simon Marchi >> Date: Thu, 7 Dec 2017 17:33:33 -0500 >> >> This patch adds the possibility to pass a qualified=True|False parameter >> when creating a breakpoint in Python. It is equivalent to using >> -qualified in a linespec. The parameter actually accepts any Python >> value, and converts it to boolean using Python's standard rules for >> that (https://docs.python.org/3/library/stdtypes.html#truth). >> >> Unlike the -source/-line/-function/-label parameters, it is possible to >> use -qualified with a "normal" (non-explicit) linespec. Therefore, it >> is possible (unlike these other parameters) to use this new parameter >> along with the spec parameter. >> >> I updated the py-breakpoint.exp test. To be able to test multiple >> locations using a namespace, I had to switch the test case to compile as >> C++. If we really wanted to, we could run it as both C and C++, but >> omit the C++-specific parts when running it as C. >> >> gdb/ChangeLog: >> >> * location.h (string_to_event_location): Add match_type >> parameter. >> * location.c (string_to_event_location): Likewise. >> * python/py-breakpoint.c (bppy_init): Handle qualified >> parameter. >> >> gdb/doc/ChangeLog: >> >> * python.texi (Manipulating breakpoints using Python): Document >> qualified parameter to gdb.Breakpoint. >> >> gdb/testsuite/ChangeLog: >> >> * gdb.python/py-breakpoint.c (foo_ns::multiply): New function. >> * gdb.python/py-breakpoint.exp: Compile the test case as c++, >> call test_bkpt_qualified. >> (test_bkpt_qualified): New proc. > > OK for the documentation part. (Do we need a NEWS entry?) A NEWS entry would be good. I think we can complement the existing one about -qualified instead of making a new one. What about this? diff --git a/gdb/NEWS b/gdb/NEWS index c6fe297..bd5ae36 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -81,7 +81,9 @@ GDB interpret the specified function name as a complete fully-qualified name instead. For example, using the same C++ program, the "break -q B::func" command sets a breakpoint on - "B::func", only. + "B::func", only. A parameter has been added to the Python + gdb.Breakpoint constructor to achieve the same result when creating + a breakpoint from Python. * Breakpoints on functions marked with C++ ABI tags