This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: match source code, not line numbers
David Carlton <carlton at math dot stanford dot edu> writes:
> How about you add a comment like "// done-with-marker1" at the end of
> both lines in question (in each test), and then put
> 'done-with-marker1' in your regexp instead of the matches for the
> bodies of the two lines? That would satisfy my concerns, avoid the
> need for gdb_get_line_number, and make the regexp a little simpler.
I think that's a great idea. How's this:
gdb/testsuite/ChangeLog:
2003-04-11 Jim Blandy <jimb at qa1a dot devel dot redhat dot com>
* gdb.c++/derivation.exp, gdb.c++/overload.exp,
gdb.c++/userdef.cc: Place comments on the lines to which the
marker function might return.
* gdb.c++/derivation.exp, gdb.c++/overload.exp,
gdb.c++/userdef.exp: Look for those comments to check that we've
returned to the right place, instead of checking line numbers.
Index: gdb/testsuite/gdb.c++/derivation.cc
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/derivation.cc,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 derivation.cc
*** gdb/testsuite/gdb.c++/derivation.cc 16 Apr 1999 01:34:32 -0000 1.1.1.1
--- gdb/testsuite/gdb.c++/derivation.cc 11 Apr 2003 19:36:33 -0000
***************
*** 214,222 ****
#endif
! marker1();
! a_instance.a = 20;
a_instance.aa = 21;
b_instance.b = 22;
b_instance.bb = 23;
--- 214,222 ----
#endif
! marker1(); // marker1-returns-here
! a_instance.a = 20; // marker1-returns-here
a_instance.aa = 21;
b_instance.b = 22;
b_instance.bb = 23;
Index: gdb/testsuite/gdb.c++/derivation.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/derivation.exp,v
retrieving revision 1.11
diff -c -r1.11 derivation.exp
*** gdb/testsuite/gdb.c++/derivation.exp 9 Apr 2003 23:21:14 -0000 1.11
--- gdb/testsuite/gdb.c++/derivation.exp 11 Apr 2003 19:36:33 -0000
***************
*** 310,316 ****
-re "#0 marker1.*$gdb_prompt $" {
setup_kfail "gdb/1155" s390-*-linux-gnu
fail "re-selected 'main' frame after inferior call"
! gdb_test "finish" ".*main.*at .*derivation.cc:21\[79\].*" \
"finish call to marker1"
}
-re "#1 ($hex in )?main.*$gdb_prompt $" {
--- 310,316 ----
-re "#0 marker1.*$gdb_prompt $" {
setup_kfail "gdb/1155" s390-*-linux-gnu
fail "re-selected 'main' frame after inferior call"
! gdb_test "finish" ".*main.*at .*derivation.cc:.*// marker1-returns-here.*" \
"finish call to marker1"
}
-re "#1 ($hex in )?main.*$gdb_prompt $" {
Index: gdb/testsuite/gdb.c++/overload.cc
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/overload.cc,v
retrieving revision 1.2
diff -c -r1.2 overload.cc
*** gdb/testsuite/gdb.c++/overload.cc 4 Feb 2003 21:19:27 -0000 1.2
--- gdb/testsuite/gdb.c++/overload.cc 11 Apr 2003 19:36:33 -0000
***************
*** 80,87 ****
// Verify that intToChar should work:
intToChar(1);
! marker1();
! return 0;
}
foo::foo (int i) { ifoo = i; ccpfoo = NULL; }
--- 80,87 ----
// Verify that intToChar should work:
intToChar(1);
! marker1(); // marker1-returns-here
! return 0; // marker1-returns-here
}
foo::foo (int i) { ifoo = i; ccpfoo = NULL; }
Index: gdb/testsuite/gdb.c++/overload.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/overload.exp,v
retrieving revision 1.11
diff -c -r1.11 overload.exp
*** gdb/testsuite/gdb.c++/overload.exp 9 Apr 2003 23:21:14 -0000 1.11
--- gdb/testsuite/gdb.c++/overload.exp 11 Apr 2003 19:36:33 -0000
***************
*** 129,135 ****
-re "#0 marker1.*$gdb_prompt $" {
setup_kfail "gdb/1155" s390-*-linux-gnu
fail "re-selected 'main' frame after inferior call"
! gdb_test "finish" ".*main.*at .*overload.cc:7\[78\].*" \
"finish call to marker1"
}
-re "#1 ($hex in )?main.*$gdb_prompt $" {
--- 129,135 ----
-re "#0 marker1.*$gdb_prompt $" {
setup_kfail "gdb/1155" s390-*-linux-gnu
fail "re-selected 'main' frame after inferior call"
! gdb_test "finish" ".*main.*at .*overload.cc:.*// marker1-returns-here.*" \
"finish call to marker1"
}
-re "#1 ($hex in )?main.*$gdb_prompt $" {
Index: gdb/testsuite/gdb.c++/userdef.cc
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/userdef.cc,v
retrieving revision 1.2
diff -c -r1.2 userdef.cc
*** gdb/testsuite/gdb.c++/userdef.cc 8 Jan 2002 16:00:16 -0000 1.2
--- gdb/testsuite/gdb.c++/userdef.cc 11 Apr 2003 19:36:33 -0000
***************
*** 273,280 ****
A1 three(0,0);
int val;
! marker1();
! cout << one;
cout << two;
three = one + two;
cout << "+ " << three;
--- 273,280 ----
A1 three(0,0);
int val;
! marker1(); // marker1-returns-here
! cout << one; // marker1-returns-here
cout << two;
three = one + two;
cout << "+ " << three;
Index: gdb/testsuite/gdb.c++/userdef.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/userdef.exp,v
retrieving revision 1.7
diff -c -r1.7 userdef.exp
*** gdb/testsuite/gdb.c++/userdef.exp 9 Apr 2003 23:21:14 -0000 1.7
--- gdb/testsuite/gdb.c++/userdef.exp 11 Apr 2003 19:36:34 -0000
***************
*** 75,81 ****
-re "#0 marker1.*$gdb_prompt $" {
setup_kfail "gdb/1155" s390-*-linux-gnu
fail "re-selected 'main' frame after inferior call"
! gdb_test "finish" ".*main.*at .*userdef.cc:27\[67\].*" \
"finish call to marker1"
}
-re "#1 ($hex in )?main.*$gdb_prompt $" {
--- 75,81 ----
-re "#0 marker1.*$gdb_prompt $" {
setup_kfail "gdb/1155" s390-*-linux-gnu
fail "re-selected 'main' frame after inferior call"
! gdb_test "finish" ".*main.*at .*userdef.cc:.*// marker1-returns-here.*" \
"finish call to marker1"
}
-re "#1 ($hex in )?main.*$gdb_prompt $" {