From: Marc Khouzam <marc.khouzam@ericsson.com>
To: "'Tom Tromey'" <tromey@redhat.com>
Cc: "'gdb-patches@sourceware.org'" <gdb-patches@sourceware.org>
Subject: RE: [patch] MI ignores conditions for pending breakpoints
Date: Wed, 25 Jul 2012 18:26:00 -0000 [thread overview]
Message-ID: <F7CE05678329534C957159168FA70DEC5C2500338A@EUSAACMS0703.eamcs.ericsson.se> (raw)
In-Reply-To: <87zk6nhgu1.fsf@fleche.redhat.com>
> -----Original Message-----
> From: Tom Tromey [mailto:tromey@redhat.com]
> Sent: Wednesday, July 25, 2012 1:49 PM
> To: Marc Khouzam
> Cc: 'gdb-patches@sourceware.org'
> Subject: Re: [patch] MI ignores conditions for pending breakpoints
>
> >>>>> "Marc" == Marc Khouzam <marc.khouzam@ericsson.com> writes:
>
> Marc> -standard_testfile mi-pending.c mi-pendshr.c
> Marc> -set lib_sl [standard_output_file mi-pendshr.sl]
> Marc> +set libfile "mi-pendshr"
> Marc> +standard_testfile mi-pending.c $libfile.c
> Marc> +set lib_sl [standard_output_file $libfile.sl]
>
> I think it is better to leave the standard_testfile call as-is:
>
> standard_testfile mi-pending.c mi-pendshr.c
> set lib_sl [standard_output_file mi-pendshr.sl]
>
> and then
>
> Marc> +mi_gdb_test "-break-insert -f -c x==4 ${libfile}.c:pendfunc2" \
>
> ... use ${srcfile2} here instead of ${libfile}.c
>
> Setting srcfile2 is part of the contract of standard_testfile.
Thanks for that. I've also added a check to make sure x==4 when
the breakpoint hits. How about this?
P.S. To save time, is there a good way to run a single test while
writing it? I currently hack around to get it done, but I'm hoping
there is a better way.
2012-07-25 Marc Khouzam <marc.khouzam@ericsson.com>
* gdb.mi/mi-pending.c: New method to set a second pending
breakpoint.
* gdb.mi/mi-pending.exp: Set a pending breakpoint with a
condition.
### Eclipse Workspace Patch 1.0
#P src
Index: gdb/testsuite/gdb.mi/mi-pending.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-pending.exp,v
retrieving revision 1.16
diff -u -r1.16 mi-pending.exp
--- gdb/testsuite/gdb.mi/mi-pending.exp 10 Jul 2012 15:32:51 -0000 1.16
+++ gdb/testsuite/gdb.mi/mi-pending.exp 25 Jul 2012 18:24:54 -0000
@@ -48,12 +48,29 @@
mi_gdb_load ${binfile}
mi_load_shlibs $lib_sl
-# Set pending breakpoint via MI
+# Set pending breakpoint via MI.
mi_gdb_test "-break-insert -f pendfunc1" \
".*\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"<PENDING>\",pending=\"pendfunc1\",times=\"0\",original-location=\"pendfunc1\"\}"\
"MI pending breakpoint on pendfunc1"
+# Set pending breakpoint with a condition via MI.
+mi_gdb_test "-break-insert -f -c x==4 ${srcfile2}:pendfunc2" \
+ ".*\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"<PENDING>\",pending=\"${srcfile2}:pendfunc2\",cond=\"x==4\",times=\"0\",original-location=\"${srcfile2}:pendfunc2\"\}"\
+ "MI pending breakpoint on ${srcfile2}:pendfunc2 if x==4"
+
mi_run_cmd
mi_expect_stop "breakpoint-hit" "pendfunc1" ".*" ".*" ".*" \
{ "" "disp=\"keep\"" } \
"Run till MI pending breakpoint on pendfunc1"
+
+mi_send_resuming_command "exec-continue" "continuing execution to skip conditional bp"
+# We should not stop on the conditional breakpoint yet, but we stop on the original bp.
+mi_expect_stop "breakpoint-hit" "pendfunc1" ".*" ".*" ".*" \
+ { "" "disp=\"keep\"" } \
+ "Run till MI pending breakpoint on pendfunc1 a second time"
+
+mi_send_resuming_command "exec-continue" "continuing execution to conditional bp"
+# Now we should stop on the conditional breakpoint.
+mi_expect_stop "breakpoint-hit" "pendfunc2" "\{name=\"x\",value=\"4\"\}" ".*" ".*" \
+ { "" "disp=\"keep\"" } \
+ "Run till MI pending breakpoint on pendfunc2 with x==4"
Index: gdb/testsuite/gdb.mi/mi-pendshr.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-pendshr.c,v
retrieving revision 1.7
diff -u -r1.7 mi-pendshr.c
--- gdb/testsuite/gdb.mi/mi-pendshr.c 4 Jan 2012 08:17:54 -0000 1.7
+++ gdb/testsuite/gdb.mi/mi-pendshr.c 25 Jul 2012 18:24:54 -0000
@@ -23,7 +23,13 @@
printf ("in pendfunc1, x is %d\n", x);
}
+void pendfunc2 (int x)
+{
+ printf ("in pendfunc2, x is %d\n", x);
+}
+
void pendfunc (int x)
{
pendfunc1 (x);
+ pendfunc2 (x);
}
next prev parent reply other threads:[~2012-07-25 18:26 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-21 3:04 Marc Khouzam
2012-07-23 19:08 ` Tom Tromey
2012-07-24 17:42 ` Marc Khouzam
2012-07-25 13:11 ` Marc Khouzam
2012-07-25 15:50 ` Tom Tromey
2012-07-25 17:45 ` Marc Khouzam
2012-07-25 17:49 ` Tom Tromey
2012-07-25 18:26 ` Marc Khouzam [this message]
2012-07-25 18:43 ` Tom Tromey
2012-07-25 18:38 ` Marc Khouzam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=F7CE05678329534C957159168FA70DEC5C2500338A@EUSAACMS0703.eamcs.ericsson.se \
--to=marc.khouzam@ericsson.com \
--cc=gdb-patches@sourceware.org \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox