This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFA: test macro expansion in presence of #line directives


gdb/testsuite/ChangeLog:
2002-11-01  Jim Blandy  <jimb@redhat.com>

	* gdb.base/step-line.exp: Check that GDB can handle filenames that
	appear in the line number info, but not in the preprocessor macro
	info.

Index: gdb/testsuite/gdb.base/step-line.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/step-line.exp,v
retrieving revision 1.1
diff -c -r1.1 step-line.exp
*** gdb/testsuite/gdb.base/step-line.exp	27 Mar 2001 01:32:45 -0000	1.1
--- gdb/testsuite/gdb.base/step-line.exp	1 Nov 2002 20:30:25 -0000
***************
*** 53,58 ****
--- 53,94 ----
  gdb_test "next" \
           ".*i = f2 \\(i\\);.*" \
  	 "next over dummy 1"
+ 
+ # As of Oct 2002, GCC does record the effect of #line directives in
+ # the source line info, but not in macro info.  This means that GDB's
+ # symtabs (built from the former, among other things) may mention
+ # filenames that GDB's macro tables (built from the latter) don't have
+ # any record of.  Make sure GDB can handle this by trying to evaluate
+ # an expression, which will do a macro expansion.
+ send_gdb "print i\n"
+ gdb_expect {
+     -re ".* = 4.*$gdb_prompt $" {
+         pass "macro-expand expression after #line directive"
+     }
+     -re ".*A problem internal to GDB has been detected.*Quit this debugging session\\? \\(y or n\\) $" {
+         send_gdb "n\n"
+         gdb_expect {
+             -re "Create a core file of GDB\\? \\(y or n\\) $" {
+             }
+             timeout {
+                 fail "resync after #line failure (timeout)"
+             }
+         }
+         send_gdb "n\n"
+         gdb_expect {
+             -re "$gdb_prompt $" {
+             }
+             timeout {
+                 fail "resync after #line failure (timeout)"
+             }
+         }
+         fail "macro-expand expression after #line directive"
+     }
+     timeout {
+         fail "macro-expand expression after #line directive (timeout)"
+     }
+ }
+ 
  gdb_test "next" \
           ".*dummy \\(2, i\\);.*" \
  	 "next to dummy 2"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]