From patchwork Tue Apr 18 22:13:18 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 20079 Received: (qmail 112856 invoked by alias); 18 Apr 2017 22:13:43 -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 112842 invoked by uid 89); 18 Apr 2017 22:13:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 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=3877 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; Tue, 18 Apr 2017 22:13:41 +0000 Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by (Symantec Mail Security) with SMTP id 29.E7.26215.49F86F85; Wed, 19 Apr 2017 00:13:40 +0200 (CEST) Received: from EUR01-VE1-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.339.0; Wed, 19 Apr 2017 00:13:39 +0200 Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=ericsson.com; Received: from elxcz23q12-y4.ca.am.ericsson.se (192.75.88.130) by HE1PR07MB1721.eurprd07.prod.outlook.com (10.166.124.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6; Tue, 18 Apr 2017 22:13:37 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 1/4] Make gdb_breakpoint return the breakpoint number Date: Tue, 18 Apr 2017 18:13:18 -0400 Message-ID: <20170418221321.20993-1-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: DM3PR12CA0062.namprd12.prod.outlook.com (10.161.151.30) To HE1PR07MB1721.eurprd07.prod.outlook.com (10.166.124.151) X-MS-Office365-Filtering-Correlation-Id: 4909762d-9dfe-4376-f9f1-08d486a829ef X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:HE1PR07MB1721; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1721; 3:e+gz/Ta0Tq4GNgSEamFZHomVsLF/cu8YzC5E1aurHdGMAyTG6ycx0DLtjbqPDk9tcdMD8qWykSbjLVi7pi2YzXwNUWiheay1RHdHt6elO7tbogg0q06/8QuLhc8JXOB4M1BtF0HmsQBgU1YGVXwD+3ancAactPph6Vm2wh6qoW5ZcvqDZIJWWWx0zbBBtd1bHgqeKBG3zt4BOFrZETKBVv1/ERdnW9U5FyETQQM0cHqwtAi1/XRmWg/ec+Ax/yQ8rBUfkDLV7chwIbaQGxLhaEmc0Fu9G69Kzq7AUDf0VS690wWtdprg+OOH5cB4yLK9rBxiIlT6xMr+1XCMzMWpdw==; 25:gVhzWKrMu30VuHFPngZgBymVAlCenXQFrpP403qTiBOWb/94iuqStzQczV34W8g0BKoGWz9uhqGZZerhM75y+4fFyV4DN4or6j0P5Up/IKkz225BkHAhmMt93EFWHVp1PyJaaC6PIt0Zp0OY9jlCNlrAP1V7usKJpzzXozp0pVbpstJd1EPkyHITQ8jRzlGZ93cj6Cz8RBVc4I0m3ynYwwOqmnAW3zk0D5iQH578kRhuEUgaTV1sGqqg7oHMWS7jcZcB5qjMow7CPnwhYGVFcQyqxytxykrkBVGyMpJpmzlrIoyJPBzLtmHSMiSKVQEjVZQEhNlTIi/lgjf+ESgn9QpnP0p7fpmFOl6bVw+BxqapXWL3+6vNppgfXNMa3m9NhByxvB1ZQVoSOpUdK2KunMxFXDHrGmlh0prZVbageQHTdnz459vYXeifbGt6T3+sOEY6Np/l9rLCWDoRR8N/9TUP+zEfqFyTZQAL2t5rvJs= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1721; 31:mydQMuoDE4iYrsGwwUFJ3fcYlK1bOTB/jkyPG4j0symGMh+nHlVe6APUrjZ6CrC8vZIM0yN8Yg3rtqMPK15UyXLDlDP/i+7kaFteQ7wveKIIckkhSk14qpF1h2kbFyTg6dwn3TaunNMP1FeWf3ZCfWl+AdfXtn+uhLBenPneG8WvktYhO6NxOAnjRYJuuM0qlTsKEyxVHTRchdxjHxRYSVkUJftVV1+BaE5Y1u5POyAl/+F+PwHQYyjdbN3Ji70+; 20:dwBRZlKDiIJ498TNoQrxb7+AisKv3gUuaKb+FT/V9+wIe1BIzpgtBwEAoHcwsK0LoKLU1x9cWBbbdOmYuQ1cDSkdy5JVEXUvizxhCu/icKjjdOVsgl0WuUWyJ/VhMtkEwCUhWZSrPPy7cq0agTzVwrewaStuk5fbyAGf44SI5Z9s+euxfReEsEVYC56U0JR6MBSu9hnMJosxhhI1GD+VlM72G+DsXdsyzH6ub9nf3iAfxYKhOBUCva4lwOynD+bXztcXPErqjLdgOprwB+YJVHIB9BF5BoEAs1XJlgqMjD8eZidytROovezOkFONCz6GYOKtrnjmkD97Y8fHxPXD9Icb64gEDJQyUuQtuIy6n6dJZh+J/ZEwMfcxALaGKb3GmsJuyz8p0OaPVy/L5ZrcpFcTZvZA01an+7ka5/pKUxWuJCUMBH03u+e0g4aRU4QS4/UE52jjMla7QlwUxSkpcM7aQl6MwNY4jAz0sm6kJ8z6aRdxfqokimNj7Wv9TB+K X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123564025)(6072148); SRVR:HE1PR07MB1721; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB1721; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1721; 4:IZRZtdLKyD6waXD+Ia1LWd+DTtT96ddl6MrjqtsYN5d+yv7GYvzdF/M5fVCdXI4UVlhG9ZjAKfX03YLAHG9Tf3SRAeNBrYK0xjZF3yI4XUHpj5uwwX5nd26v9nPgdBcbx2tIAmMLkcMa+l0zSLUSfWEt7Tk879uuoVr438boUl4bcTMz4Wyjp84xr2JqbNDeHoFLEmLe2BcwEVGT2PY3lFaoJfyHbdH/1XF6CZWFFD0i3KZtugRbEg8jpnikLkT/XA508GFdKt8xU7C/wl8/TU1bI9h0bTJGT4AwpDS/ea4PVf7UcpGZ5oQwjazHN5PXxNsxQ9ip4MDBXCt7nMGsjHCJP+wuKJYGM2VNMSvcz8hMZoTuoqnEGlX04/v31XDoZr2SbuUj7X1Hr3pOmEdeM00BZYbl1DJO1p9CEfGe7mnUJGhQuJtBVfP7SrgqOflODkUxIQeM2j9OpGX4A9fxv6CPmHYq5VMIMD+hxKhHa65zNBzjyphJncCJVbcMfnH6j6U6eT/QAvaPRjSZGWxXguaK5x2iwME9sAufikjVsfLa1i5/i/UKB/32XFRGCYgqyDn8X7ln1s+UX0snVq8GoNZcbNKMhtQjX+jdW4h2/Ibrtfhm8pppDp97Xx4qtiQxL3yzB1H41UKuaJdxuA2wkQKJ4/f+dg7XaXtkkMncsiDnlGUOAgb5IDu+WyzayM44jp0a6kGtcGOVudyuNzN33A== X-Forefront-PRVS: 028166BF91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39400400002)(39860400002)(39850400002)(39410400002)(39450400003)(39840400002)(54534003)(6916009)(305945005)(47776003)(8676002)(25786009)(6666003)(53936002)(50986999)(66066001)(5660300001)(6506006)(38730400002)(2906002)(107886003)(48376002)(81166006)(5003940100001)(110136004)(50226002)(6486002)(36756003)(6116002)(33646002)(86362001)(4326008)(3846002)(7736002)(189998001)(1076002)(42186005)(2351001)(6512007)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR07MB1721; H:elxcz23q12-y4.ca.am.ericsson.se; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB1721; 23:UAWH57FAXHS2W0nu+FO14ZZox+NeFYQWTgJ4Zas84?= =?us-ascii?Q?7h0GdyCrJBAcoxqLEsfMFHxVSpTwf/5j7bpytcWw1mH9+xDbeyWnWyGqtkcz?= =?us-ascii?Q?728f8RW1/0d5c1VFDbCuqXdaueAGuM3LvPuFptvm2g5/uK7D8KeTzEFrM2v4?= =?us-ascii?Q?6j4vC7cpDtTzzqWBeAa0knGysd1rsCWlJ1v7FBokUawizV+0PMFD/su4dcvz?= =?us-ascii?Q?bEPGs8gRDREDREDGS9vCdNnMG86/6+RerEzC4YGq5sAeOaIdcIyVwk4IYr6s?= =?us-ascii?Q?Eq/YSvkZ8jgmbb9BBdQWEfcgigSma5MtUEWuTvl6EN6Gw+P00s2bfQWhsPVh?= =?us-ascii?Q?HvLcwikwfL8gzgvYjK/tIrKBolcA9Lz/aaMr8wdnvUQIMA/oVnLkjiiWD6va?= =?us-ascii?Q?3B9ZdA/UecP/2Z/aRZ0ZhxKqtf05IXH0N4mKxFegfvcwWeMXU0Crv/u3SoUa?= =?us-ascii?Q?ndRd4f+U2VoJsmAfhd0ZHoHCTSID8X0qlbnXidLoWOvVJVSF6/e+tIu3NlXK?= =?us-ascii?Q?2E2G2+tG732Xv3VR+GwGIrMiLmnz97HndYBzY6B1vwJDztCiJ3nvI4dR67Rd?= =?us-ascii?Q?CCJGPO6KNu7Ml0Y4iD5kvd4mne9j9g7YhKK+l/sYfMqcOW7l2CZq7UsYCgNR?= =?us-ascii?Q?8jsq/u7HoDnf1lWQ+9rbPBFzVrtcASF/GBJQKfEFfROitb+xgwHIwiUCzTGY?= =?us-ascii?Q?jtt+6eKpqLD68H58AF00XD6C7VKnCI8hF+oVjmV7lg6YepmHBGHY1zqm3+Wo?= =?us-ascii?Q?4LkWp2VHl1h3JLMgb5Ltax2oMni0N6aU++JDq12Uxfzt6VyA0mNf7gbzOL/h?= =?us-ascii?Q?3B29/4daN5UBZsdbmV7a4PoBCoRSHdvf4fjPFJhcpzRoOJXA6nHOr77TeM+h?= =?us-ascii?Q?2GXU5JWBsR5+2bDqAx+SiY34EB0200Ggzm8OLZQ39EN1WIoB1s4xw+OPX1bO?= =?us-ascii?Q?is8BQikZCaiPuZCyIRQiR8dK70JtYOXdQmFle6GTL01Qwu2tGlnXxWL3GlKw?= =?us-ascii?Q?UGpHwv9Gwog3FjEezXJ6mVJ3s1y2JmagI+T7RPwo4Aa2rfk7ms8N0gv1FUb1?= =?us-ascii?Q?eeRx9w=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1721; 6:IwrLrmDpN8HQ52n8diILGQUpOGwJEa7GNkzEeSaFHvhPqHlAqd1ymn1zClnr1lXIE4rGLREgZS9Rsji71uuZFEEiN9N+R9iqEXyhAwcPbnkyM2SBLExOnkIkJGqzqf8Jzeo4AUSzmiKO8kE9ZnPzcCIYb2R+atemGOOkrrbBUKakEsE4z77gDONTnGWObpuI3iJl+a9tAv+aKinpqgfy5JZsG9moai4uocGsS7cm+9d/EV8OfzlStXybKn9+5+XU87lkzJl8DZ9CJiaqPRFuiXto5xBXvXc5pQpuDUAm+jWSGHNkDGN293lCPSjie8QEEnvcIOG9JTaK8WV+jauj2GA7/Oq5/MDr/SkRxClRmDqf78Qjx3d3zHbZ5eRt/EzaAhGX3aA/RSdCpa/yXnD4eKkK3ncUFXtK72idSxi1j3RO4YwEMkRY8b6Kqt7qBizWSkci/9D8nWYNPKJgMgq7ZJTe2NZyNr39eElyiUuNH58VT5xqHRIHZVusn5+Z8t80MjjpaG4OzUD+aGx52B8coQ==; 5:wTSE/SozR+GUXfFuiO9Sh60j/kB5qy3yOBcW6x5QuEvAR9djj+HwKMGRVBMT5imYP1Llvb7tamSIRsBCANBNSZekXjNN8ixfHh5Vaot38LYkaJWgN1FIVKVwafUsRo3TLT7bD8lQp3fwPYLgf6HLtw==; 24:U9iyyTEGSu/rLenrJUHFlA8OyMWYo2wEWi398yO2YvUK2kSpFp58a7WDdCQE9xBAp3KVAQVrLI9i8X+vIapdhfuIOvmAyLef+AC0GDtvVzY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1721; 7:mzc7u9iCkUmhIeQ84YaIiHlsmjrjNGgSind6AoFRk0WFjaAWR01RDlRy3WgnBzPPbWFXSWr3pZwFRjlasBNxjkPRju/DXf0RNZQQd8/ptOfPhfW8qhwC942UMMaKF0+/duOMRrisAnThAr92ChQj6nEOx0cyVnrnczDQI+m9AVkdup00yfdTSd0/O6vtue2doAWIpOgAA0hhrJKmgIZPDY3jSLhCpTnQYLrVG/cnib4ZV/0pM1XtSp/jbtpgjPWatpbelWrZhHg3VzXMbpnEpJ6ydghvuqATDaaPlKfVOVFaOggw//KGzRidqSC6ySJ2TIiBuFO1EVhAjV+ekoMzRg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2017 22:13:37.5156 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB1721 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes This patch makes the gdb_breakpoint procedure return the number of the new breakpoint. It also updates the documentation to use linespec instead of function as the first argument, since nothing requires it to be a function (it can be a line number, or file:line). gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_breakpoint): Return breakpoint number. Change "function" argument to "linespec". --- gdb/testsuite/lib/gdb.exp | 51 ++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index ea77361310..98ce7970c7 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -370,10 +370,16 @@ proc gdb_start_cmd {args} { return -1 } -# Set a breakpoint at FUNCTION. If there is an additional argument it is -# a list of options; the supported options are allow-pending, temporary, -# message, no-message, and passfail. -# The result is 1 for success, 0 for failure. +# Set a breakpoint at LINESPEC. If there is an additional argument it is +# a list of options; the supported options are: +# +# - allow-pending +# - message +# - no-message +# - passfail +# - temporary +# +# The result is the GDB breakpoint number (> 0) for success, 0 for failure. # # Note: The handling of message vs no-message is messed up, but it's based # on historical usage. By default this function does not print passes, @@ -381,7 +387,7 @@ proc gdb_start_cmd {args} { # no-message: turns off printing of fails (and passes, but they're already off) # message: turns on printing of passes (and fails, but they're already on) -proc gdb_breakpoint { function args } { +proc gdb_breakpoint { linespec args } { global gdb_prompt global decimal @@ -408,21 +414,29 @@ proc gdb_breakpoint { function args } { set print_pass 1 } - set test_name "setting breakpoint at $function" + set test_name "setting breakpoint at $linespec" - send_gdb "$break_command $function\n" + send_gdb "$break_command $linespec\n" # The first two regexps are what we get with -g, the third is without -g. gdb_expect 30 { - -re "$break_message \[0-9\]* at .*: file .*, line $decimal.\r\n$gdb_prompt $" {} - -re "$break_message \[0-9\]*: file .*, line $decimal.\r\n$gdb_prompt $" {} - -re "$break_message \[0-9\]* at .*$gdb_prompt $" {} - -re "$break_message \[0-9\]* \\(.*\\) pending.*$gdb_prompt $" { - if {$pending_response == "n"} { - if { $print_fail } { - fail $test_name - } - return 0 - } + -re "$break_message ($decimal) at .*: file .*, line $decimal.\r\n$gdb_prompt $" { + set breakpoint_num $expect_out(1,string) + } + -re "$break_message ($decimal): file .*, line $decimal.\r\n$gdb_prompt $" { + set breakpoint_num $expect_out(1,string) + } + -re "$break_message ($decimal) at .*$gdb_prompt $" { + set breakpoint_num $expect_out(1,string) + } + -re "$break_message ($decimal) \\(.*\\) pending.*$gdb_prompt $" { + set breakpoint_num $expect_out(1,string) + + if {$pending_response == "n"} { + if { $print_fail } { + fail $test_name + } + return 0 + } } -re "Make breakpoint pending.*y or \\\[n\\\]. $" { send_gdb "$pending_response\n" @@ -457,7 +471,8 @@ proc gdb_breakpoint { function args } { if { $print_pass } { pass $test_name } - return 1 + + return $breakpoint_num } # Set breakpoint at function and run gdb until it breaks there.