From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23148 invoked by alias); 22 Jan 2008 19:27:00 -0000 Received: (qmail 23138 invoked by uid 22791); 22 Jan 2008 19:26:59 -0000 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 22 Jan 2008 19:26:41 +0000 Received: (qmail 17032 invoked from network); 22 Jan 2008 19:26:38 -0000 Received: from unknown (HELO 172.16.unknown.plus.ru) (vladimir@127.0.0.2) by mail.codesourcery.com with ESMTPA; 22 Jan 2008 19:26:38 -0000 From: Vladimir Prus Date: Tue, 22 Jan 2008 19:27:00 -0000 Subject: [RFA] Fix -break-insert -i. To: gdb-patches@sources.redhat.com X-TUID: 94e184748c3314a4 X-Length: 5341 X-UID: 126 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200801222226.35445.vladimir@codesourcery.com> 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 X-SW-Source: 2008-01/txt/msg00528.txt.bz2 It appears my breakpoint refactoring broke the -i parameter (ignore count) for -break-insert. This patch fixes that, as well as adding a test for that feature. OK? - Volodya gdb/ * breakpoint.c (break_command_really): New parameter ignore_count. (break_command_1): Pass 0 as ignore_count to break_command_really. (gdb_breakpoint): Pass ignore_count to break_command_really. gdb/testsuite * gdb.mi/basics.c: Setup for testing breakpoints ignore count. * gdb.mi/mi-break.exp: Test for breakpoint ignore count. * gdb.mi/mi-cli.exp: Adjust. * gdb.mi/mi2-cli.exp: Adjust. --- gdb/breakpoint.c | 12 +++++++----- gdb/testsuite/gdb.mi/basics.c | 8 ++++++++ gdb/testsuite/gdb.mi/mi-break.exp | 24 ++++++++++++++++++++++++ gdb/testsuite/gdb.mi/mi-cli.exp | 2 +- gdb/testsuite/gdb.mi/mi2-cli.exp | 2 +- 5 files changed, 41 insertions(+), 7 deletions(-) diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 60fbbe5..9551bd5 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -5237,10 +5237,11 @@ find_condition_and_thread (char *tok, CORE_ADDR pc, static int break_command_really (char *arg, char *cond_string, int thread, - int parse_condition_and_thread, - int tempflag, int hardwareflag, - enum auto_boolean pending_break_support, - int from_tty) + int parse_condition_and_thread, + int tempflag, int hardwareflag, + int ignore_count, + enum auto_boolean pending_break_support, + int from_tty) { struct gdb_exception e; struct symtabs_and_lines sals; @@ -5254,7 +5255,6 @@ break_command_really (char *arg, char *cond_string, int thread, struct captured_parse_breakpoint_args parse_args; int i; int pending = 0; - int ignore_count = 0; int not_found = 0; sals.sals = NULL; @@ -5427,6 +5427,7 @@ break_command_1 (char *arg, int flag, int from_tty) return break_command_really (arg, NULL, 0, 1 /* parse arg */, tempflag, hardwareflag, + 0 /* Ignore count */, pending_break_support, from_tty); } @@ -5441,6 +5442,7 @@ gdb_breakpoint (char *address, char *condition, return break_command_really (address, condition, thread, 0 /* condition and thread are valid. */, tempflag, hardwareflag, + ignore_count, pending ? AUTO_BOOLEAN_TRUE : AUTO_BOOLEAN_FALSE, 0); diff --git a/gdb/testsuite/gdb.mi/basics.c b/gdb/testsuite/gdb.mi/basics.c index d56bf9d..5b52112 100644 --- a/gdb/testsuite/gdb.mi/basics.c +++ b/gdb/testsuite/gdb.mi/basics.c @@ -46,6 +46,11 @@ callee1 (int intarg, char *strarg, double fltarg) callee2 (intarg, strarg); } +void callme (int i) +{ + printf ("callme\n"); +} + main () { callee1 (2, "A string argument.", 3.5); @@ -53,6 +58,9 @@ main () printf ("Hello, World!"); + callme (1); + callme (2); + return 0; } diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp index b51fd18..af438b9 100644 --- a/gdb/testsuite/gdb.mi/mi-break.exp +++ b/gdb/testsuite/gdb.mi/mi-break.exp @@ -153,8 +153,32 @@ proc test_rbreak_creation_and_listing {} { "delete temp breakpoints" } +proc test_ignore_count {} { + global mi_gdb_prompt + + mi_gdb_test "-break-insert -i 1 callme" \ + "\\^done.*ignore=\"1\".*" \ + "insert breakpoint with ignore count at callme" + + mi_run_cmd + + gdb_expect { + -re ".*func=\"callme\".*args=\\\[\{name=\"i\",value=\"2\"\}\\\].*\r\n$mi_gdb_prompt$" { + pass "run to breakpoint with ignore count" + } + -re ".*$mi_gdb_prompt$" { + fail "run to breakpoint with ignore count" + } + timeout { + fail "run to breakpoint with ignore count (timeout)" + } + } +} + test_tbreak_creation_and_listing test_rbreak_creation_and_listing +test_ignore_count + mi_gdb_exit return 0 diff --git a/gdb/testsuite/gdb.mi/mi-cli.exp b/gdb/testsuite/gdb.mi/mi-cli.exp index 64789b5..ef674b0 100644 --- a/gdb/testsuite/gdb.mi/mi-cli.exp +++ b/gdb/testsuite/gdb.mi/mi-cli.exp @@ -186,7 +186,7 @@ gdb_expect { } mi_gdb_test "-interpreter-exec console \"list\"" \ - "\~\"$line_main_return\[\\\\t ]*return 0;\\\\n\".*\\^done" \ + "\~\"$line_main_return\[\\\\t ]*callme \\(1\\);\\\\n\".*\\^done" \ "-interpreter-exec console \"list\" at basics.c:\$line_main_return" mi_gdb_test "-interpreter-exec console \"help set args\"" \ diff --git a/gdb/testsuite/gdb.mi/mi2-cli.exp b/gdb/testsuite/gdb.mi/mi2-cli.exp index ee8d47d..7879bd7 100644 --- a/gdb/testsuite/gdb.mi/mi2-cli.exp +++ b/gdb/testsuite/gdb.mi/mi2-cli.exp @@ -186,7 +186,7 @@ gdb_expect { } mi_gdb_test "-interpreter-exec console \"list\"" \ - "\~\"$line_main_return\[\\\\t ]*return 0;\\\\n\".*\\^done" \ + "\~\"$line_main_return\[\\\\t ]*callme \\(1\\);\\\\n\".*\\^done" \ "-interpreter-exec console \"list\" at basics.c:\$line_main_return" mi_gdb_test "-interpreter-exec console \"help set args\"" \ -- 1.5.3.5