From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66944 invoked by alias); 16 Oct 2017 18:31:15 -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 66931 invoked by uid 89); 16 Oct 2017 18:31:14 -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,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:3686 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; Mon, 16 Oct 2017 18:31:13 +0000 Received: from ESESSHC023.ericsson.se (Unknown_Domain [153.88.183.87]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 3F.AA.09869.EEAF4E95; Mon, 16 Oct 2017 20:31:10 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.87) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 16 Oct 2017 20:31:10 +0200 Received: from [142.133.49.59] (192.75.88.130) by AMSPR07MB311.eurprd07.prod.outlook.com (2a01:111:e400:802f::23) 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:31:07 +0000 Subject: Re: [python] Allow explicit locations in breakpoints. To: Phil Muldoon , "gdb-patches@sourceware.org" References: <04ccc2c4-7827-eedc-d8db-a83a0167acb6@redhat.com> CC: Keith Seitz From: Simon Marchi Message-ID: Date: Mon, 16 Oct 2017 18:31: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: <04ccc2c4-7827-eedc-d8db-a83a0167acb6@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BN6PR1201CA0023.namprd12.prod.outlook.com (2603:10b6:405:4c::33) To AMSPR07MB311.eurprd07.prod.outlook.com (2a01:111:e400:802f::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5160aaaf-abe1-4b5f-3cda-08d514c4115f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603219)(201703131423075)(201703031133081)(201702281549075);SRVR:AMSPR07MB311; X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB311;3:oZdTMOka8H/o53461AzWmXUPXiEKk8CXybtA4VXGCxWnU9dRx6eckRM8Q7SJygQAHzxiLk6/tFN8d1gzqlduHPMr0bsoKgKG9dywYaKQgl3Jna9ZzPSi+7REwztGRmkPlREutDxf9jl/JMTPmv5gPHM4TNpi3afMj2wecBu5pALrrhCgBdvtGwCusdZ1sxBcoxmMxj7HgGrYXJ+9rdWwbrfPGQ5/k6xGx6e30abR5qUhIdbY12Z6etnSGU1aLmwV;25:Khi+MdnkIvDgYRU+H/5GOODlUsgRA5MJCWGRixSpPGrCDIMOevwa095dcaiyiF6H/KeFeWexVn/FTMTSs6snw1hGvgzUqTO6ILq9DZq+jOyQoysqY46UK6xTwI2DbZWgCcoho6HvCBA52Kevz64VQQQU1SqAd4aEWV5cQycJtWJGfZNTI8NVfhxBZ3yb2ZkghjMhziUeqEB0cTcMcdNiaqc8nQAXxhgj0CJi7hnNIb9rVaaykSBIfo9C/Iyh1f40t1hJPdjHWjsQG6URxMQtC7YfPyJU0kq2g9yKlJ3GE2SHchR3ZMdM3uMZKseN3fulSySOR76ZJtw9+d5D1pACBodHIpcaM8OXBZ9+qtpQ/bA=;31:sIs0VlKAchpmqzez1MH9acvGtvREl6ZUpF49zBsOQdFzezYaEHNpSwr9Hqa5tBjElWHvI6HXHJfrApWqlkPwGtcZWYIKfKDWiUG1b2a9oPZrjcdLL/YwtWGJBgAHD70w030lgdQxXvaZo/WpLgTDUSU2fkvjqwtFCUSypj2jAfzf/QSoQ4F21DGwOQZVVw4xHX34Jur07YUhEZXBiIHz+CY3FU54/+lkJw2abAJxdEA= X-MS-TrafficTypeDiagnostic: AMSPR07MB311: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB311;20:mnOPzFhjFyJqKGWerqEVcGvcMQGH+49pW7vOyOjgLb8tg4T8wd02Q2qygxUFOlxvO4800rWJcDkok2tVMUNf1D/TtRzYDWXn74h2vWS4S3oLFDYz+6ocfts6+Sr765kW5Jbj75W3AqlbV/QdHvCWiWnrp/EcZbj0Z4Dmo5Mr9V8Lr/1IyNHYqP4lYFUofeTFHeQdqhiPFMbAPYmKHKtz/2s4aJQf+UXjA5AMI7jpF5Ky2F24SeaSAA1x5L2887tP3pVjCfYyj3Wh5h98/buGurWweQTNNn1Pt7qm3wqEq+kgRrgJD4n8ak9S19UjRcs5+TIdzobV5B4ASuGF0slubim2sKGgJR3bWTjrPmuADzYxk9vEerP8+km3pgtsP/MWaacJxSyWXUjZi6DHehY/fJeNyo4jrnadMFGUyjEhX6BboVsWXLOaH6wf6Jd/OnhOZSK9XE9wdUPJ8qqgU0HtQytkcnMcdYYYSX5yO1gZdjP0L7phkjlKFCkacGFOS3tl;4:HD/LaksIqXUN6C+QhrrFlnkeTeH6zHgxXZSQE+Z0UDrVKbF1ut53idY1D4znCWPkt2yTa/3WViJ5g2xLEHKHFbdypivFe0wWGHD1+OSXVSFuNLkJt1ZgZl9XMV3HDK3dBfutofOSgJL+LDTIuMRVcHEeqCXF76vXpzXxlOUaNdO/ekS6DsSbc/+7YO3qdlSDii042dfwuiw0LmYi9CucHJAEV1toSouU1iwxIaIlPp2dlo1YSBTpXDpSTIuL7ZWb 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)(10201501046)(100000703101)(100105400095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123558100)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AMSPR07MB311;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AMSPR07MB311; X-Forefront-PRVS: 0462918D61 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(346002)(376002)(189002)(199003)(6116002)(58126008)(316002)(16576012)(6666003)(83506001)(2906002)(53936002)(2501003)(3846002)(110136005)(189998001)(229853002)(6246003)(50466002)(81156014)(2950100002)(97736004)(68736007)(64126003)(25786009)(23676002)(5660300001)(16526018)(230700001)(4326008)(65826007)(86362001)(36756003)(33646002)(49976008)(8936002)(8676002)(47776003)(7736002)(31696002)(6486002)(101416001)(81166006)(305945005)(31686004)(65806001)(66066001)(106356001)(65956001)(50986999)(478600001)(54356999)(76176999)(105586002)(78286006);DIR:OUT;SFP:1101;SCL:1;SRVR:AMSPR07MB311;H:[142.133.49.59];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?MTtBTVNQUjA3TUIzMTE7MjM6V2JSV0xrcEVFN21VMlBsSDdYdmp0U1huRUQ5?= =?utf-8?B?TUdEVE5UMHRVUzVKYlRJK2hRcmF0d0RDa0hoU1Eza1FFMTVPYUQ4T3B6NlZ6?= =?utf-8?B?YjNyazJub1FMNXoxZzdRdjZJSWhKc0pHQThnN09vNmt3K2pjYTNOVFB3VUFo?= =?utf-8?B?dkYxK2pERFBwbkFkektsQ2llTkNNUzVTQXcyZkp6MW05WFlMa2VodmIrblJ1?= =?utf-8?B?SGtuSjdqTmtyVTc5blBLUk55QjhaY1poYytaNVJoTzc1UCtjeGVmbzNsalhT?= =?utf-8?B?cHIydmJoQUx4dDZ5aG1LRVlHNHF1VHJCNDI0NmJOM0dNN0cwTDdWbzhSc2dj?= =?utf-8?B?MzFWbGdJUllMYjh5TTdraVZiY1FaU1ZlU2Y5U25tdUM4TmwrN3pkQmFUZXFR?= =?utf-8?B?TlV5R1lWRFRUUURxS3I2dU53REJhUEtOZytsaDliQnR3dTNUKzNpemc4ekR0?= =?utf-8?B?cHlqdXo4YnNlaTlhS2MxcTB2ODlQUXpBTmk1YkxXZHZ3U1p2eStkYkhGcjk2?= =?utf-8?B?b3RRbnBVbHhzVXY0bG9GVFFtMDNuMEVCMnlsRDVNSUtzU0d6SDhMa1pON21w?= =?utf-8?B?WExKSmZWay9OQkIyZXF6cmU5OUNXYWR0anJUWElhZmVpVDJGZUpWaUVNdWpj?= =?utf-8?B?anF6MnZEcHQ1VDQwLzRKbmVMaVU3YUI0aXlvMXBmWjNnZzNWOWo1VjBhOEc4?= =?utf-8?B?UXVyM0NQNVdtaHc2TndxQlh2TlRoT1BJN1RaS0F5YVZVOHl4dkt4Z3lkb212?= =?utf-8?B?TUdDQVdSam5sdDJSZGtMK3JuN095LzhQL0NydWxHRkQvUmVIYVNLYktjV2tK?= =?utf-8?B?dVVDWktOS2wwdkE1djlIUDQ4S1I1R0pqZWtxRDVZTXRJaXgyaENISWs1TCt4?= =?utf-8?B?dkVLR3lhd1dVYnVKSSt6MXAraHNtZnFWaXBzVHlxQTU1VzJaWWhENzRzdGFp?= =?utf-8?B?L2UxVEh6MURQQk5XK2VhMk52MVBua3BwVTVqaENtS25lQ0xMTEd4SzhhL0Rp?= =?utf-8?B?eTZxbmJaR1drUCtWSVAwNGREUGV0UG9zaDdOK3hsYlc5Ti83dEEwOTloT3do?= =?utf-8?B?dlVqclhaVEltUE00cEYvWG1GQjRiVXhYY0xPTU9sZ3FWZ29JeGhUKzFudlR0?= =?utf-8?B?VWk0STVPZkJ4OFA0RmZwZGtkMjdreVRTUkxMSVR2dTlEYzd5NjluRUpTeXNi?= =?utf-8?B?dEp2TEphdS9tTjIzaFVTSlRrZnBLTDg0elYxTFZsNGExUGRzTU1vdm5QcE9N?= =?utf-8?B?T2ZvVFRjZmY5RXRWdmVmYk5EQlJXazZ1UFBQc1ZicTlPdHVnanlCeURmMkdw?= =?utf-8?B?OGtkUExLYml5YTU5ZjJkMUgwVld4VWFoZ1gwTVBhT3Q5ZjdxeWc3alg1Vkta?= =?utf-8?B?VkJaanliREthOWNQblFBMXpDblp2TmtEeW42TytzMld3NnNhVkY5YUZVNURl?= =?utf-8?B?NlFqTGNYcUJtOFkxOGsvMTdYeE02L2dDWHBScUxEZUdxaE9HN0o3VWV6KzZ6?= =?utf-8?B?UG1UeTZtRnZFVGJEbUVKLzArL3lsUUoraFhUTG41YkFpTVZta3VIV2Z5QmNG?= =?utf-8?B?SlE1VUpQaGltT0t0K1N6TXdWTEd3bldpY3Y3WVZHbGkzMjhSbnZwTkk0VDFH?= =?utf-8?B?c0dJR1hrNStVeFduYWg5elhqdzZ1dWJCOW4rYjdiN3JMaFpoMFpiNE02Q2Jr?= =?utf-8?B?QmlIR1doSnZDWm5sM2J3M1hub1dDeDBQS2tWTno5aEJpczdEanBMbmE0QlE5?= =?utf-8?Q?urftBF5MYOtu0fkrDYgIhTktj0AkDQwBmPRM=3D?= X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB311;6:oxxM4SMFP6RmzL/NBjo8h7Sybl04+JnB0z60fBqpTnoF7SoLA47rGRk38GYeh4X8pPzbgw551Hyc7HKZK0jbDzRFT73S3miSep/3Y9ba7+KDyIIpyaBByo9qUuLZzVhWXqmHcucTdvVSzrDUbr6OidDSz3J6egKGhQeYa2AdQSaTVOfjO5zV9zSS17O72EJ7Z+PoMuLRKyFHsDNw+FOp1FzRzBfiC1g3Rtl4IZqJpCWw8U/YUVmAcsHvd0CDPtU05y2HgiaWhuePysmrEWSSXKt1Noi2jS0qfhkOTOfMNjNeDIiFiintdnKmYl095Vk7R1/XBzbq8uo/zoFcxYbjTw==;5:vvY2quFMkLt5E5AkddhiyBh+bOtjB/MSqdtqbuc06Ep/KvLpzSiIfQCIlafErvYOLdTyi2OfHbb3OluYWlQ2M0Z1sW6N7wABE2A4vo20qowOoe3I1P2eI5eF4QGW2puh/qkUsFsJd9nwQ8nh/5OJ+5d53r6bnRPp2IMB+mddW+s=;24:YwL1T0hxi0hgR5EKmoyvsAivSUug51SctX3l/cGODNT1mk4/djOoEq8W+3VRMXveVLe9dU8Hjxmg/J/0ln3hP1x65h9Oz/sE5voHBzNMlpg=;7:7wYD2ZoQdtVmJYeFWbNAaSMHTsMX2urrdDReg2uTY0aPW0ux1o+z6a+ze0MV5HVKSAXRJsH9qVcreUNzFlj8fpdiW5FvPER5z+Rvkj/8ZeWLK6CnHY5wavEpzIrSRKMk/kdOza9V6u39XRtqwum+6LJFB9LZvF3K31WxVmbTqpQPnmNRIIDtKXzYIkQp4CSzljawgLqRu/yASWr2/KtuU5Urnu4MpMcN6SZ0z3Bxh0w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2017 18:31:07.4767 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB311 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00455.txt.bz2 > diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp b/gdb/testsuite/gdb.python/py-breakpoint.exp > index bd138ac3d2..228489f74e 100644 > --- a/gdb/testsuite/gdb.python/py-breakpoint.exp > +++ b/gdb/testsuite/gdb.python/py-breakpoint.exp > @@ -547,6 +547,72 @@ proc test_bkpt_events {} { > check_last_event breakpoint_deleted > } > > +proc test_bkpt_explicit_loc {} { > + global srcfile testfile > + > + with_test_prefix test_bkpt_invisible { This should be test_bkpt_explicit_loc. But I think I'll do a pass and make all these procs use "proc_with_prefix", to avoid having to repeat the proc name. > + # Start with a fresh gdb. > + clean_restart ${testfile} > + > + if ![runto_main] then { > + fail "cannot run to main." > + return 0 > + } > + > + delete_breakpoints > + > + set bp_location1 [gdb_get_line_number "Break at multiply."] > + set bp_location2 [gdb_get_line_number "Break at add."] > + > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-li $bp_location1\")" \ > + "Set explicit breakpoint by line" 0> + gdb_continue_to_breakpoint "Break at multiply" \ > + ".*Break at multiply.*" > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-li +1\")" \ > + "Set explicit breakpoint by relative line" 0 > + gdb_continue_to_breakpoint "Break at add" \ > + ".*Break at add.*" > + delete_breakpoints > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-li -1\")" \ > + "Set explicit breakpoint by relative negative line" 0 > + gdb_continue_to_breakpoint "Break at multiply" \ > + ".*Break at multiply.*" > + delete_breakpoints > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-function add\")" \ > + "Set explicit breakpoint by function" 0 > + gdb_continue_to_breakpoint "Break at function add" \ > + ".*Break at function add.*" > + delete_breakpoints > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-source $srcfile -function add\")" \ > + "Set explicit breakpoint by source file and function" 0 > + gdb_continue_to_breakpoint "Break at function add" \ > + ".*Break at function add.*" > + delete_breakpoints > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-source $srcfile -li $bp_location2\")" \ > + "Set explicit breakpoint by source file and line number" 0 > + gdb_continue_to_breakpoint "Break at add" \ > + ".*Break at add.*" > + delete_breakpoints > + gdb_test "python bp1 = gdb.Breakpoint (\"-source $srcfile\")" \ > + "RuntimeError: Source filename requires function, label, or line offset.*" \ > + "Set invalid explicit breakpoint by source only" > + # The below will print a warning but set pending breakpoints. > + gdb_test "python bp1 = gdb.Breakpoint (\"-source foo.c -li 5\")" \ > + "No source file named foo.*" \ > + "Set invalid explicit breakpoint by missing source and line" > + gdb_test "python bp1 = gdb.Breakpoint (\"-source $srcfile -li 900\")" \ > + "No line 900 in file \"$srcfile\".*" \ > + "Set invalid explicit breakpoint by source and invalid line." > + gdb_test "python bp1 = gdb.Breakpoint (\"-function blah\")" \ > + "Function \"blah\" not defined.*" \ > + "Set invalid explicit breakpoint by missing function." > + # Invalid explicit location flags. > + gdb_test "python bp1 = gdb.Breakpoint (\"-foo -li 5\")" \ > + "RuntimeError: invalid explicit location argument, \"-foo\".*" \ > + "Set invalid explicit breakpoint by wrong flag" For readability, could you add some empty lines between the logical blocks above? > + } > +} > + > test_bkpt_basic > test_bkpt_deletion > test_bkpt_cond_and_cmds > @@ -558,3 +624,4 @@ test_bkpt_temporary > test_bkpt_address > test_bkpt_pending > test_bkpt_events > +test_bkpt_explicit_loc > Simon