From 3f1175a995f09c90a2e026afae3602c33e1e3e19 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 20 Mar 2013 11:28:55 +0000 Subject: [PATCH] tfile.exp: Test printing a non-const global that is not covered by the trace frame; test disassembling. Make sure we don't fallback to printing the initial value of a non-const variable in the executable. Also make sure we can do 'disassemble', as another test that GDB is able to read read-only parts from the executable (the existing test of printing constglob also covers that case). gdb/testsuite/ 2013-03-20 Pedro Alves Yao Qi * gdb.trace/tfile.c: Add comments. (nonconstglob): New global. * gdb.trace/tfile.exp: Add comments. Test printing a non-const global that is not covered by the trace frame. Test disassembling. --- gdb/testsuite/ChangeLog | 9 +++++++++ gdb/testsuite/gdb.trace/tfile.c | 6 ++++++ gdb/testsuite/gdb.trace/tfile.exp | 15 +++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8888313f247..bb4977bfd84 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2013-03-20 Pedro Alves + Yao Qi + + * gdb.trace/tfile.c: Add comments. + (nonconstglob): New global. + * gdb.trace/tfile.exp: Add comments. Test printing a non-const + global that is not covered by the trace frame. Test + disassembling. + 2013-03-17 Jan Kratochvil * gdb.base/valgrind-infcall.exp diff --git a/gdb/testsuite/gdb.trace/tfile.c b/gdb/testsuite/gdb.trace/tfile.c index 11c79d9b12a..7c0c774fe83 100644 --- a/gdb/testsuite/gdb.trace/tfile.c +++ b/gdb/testsuite/gdb.trace/tfile.c @@ -13,12 +13,18 @@ char trbuf[1000]; char *trptr; char *tfsizeptr; +/* These globals are put in the trace buffer. */ + int testglob = 31415; int testglob2 = 271828; +/* But these below are not. */ + const int constglob = 10000; +int nonconstglob = 14124; + int start_trace_file (char *filename) { diff --git a/gdb/testsuite/gdb.trace/tfile.exp b/gdb/testsuite/gdb.trace/tfile.exp index 2bdde372faf..56e2a799041 100644 --- a/gdb/testsuite/gdb.trace/tfile.exp +++ b/gdb/testsuite/gdb.trace/tfile.exp @@ -64,8 +64,23 @@ gdb_test "print testglob" " = 31415" "print testglob on trace file" gdb_test "print testglob2" " = 271828" "print testglob2 on trace file" +# This global is not covered by the trace frame, but since it's const, +# we should be able to read it from the executable. + gdb_test "print constglob" " = 10000" "print constglob on trace file" +# Similarly, disassembly should find the read-only pieces in the executable. +gdb_test "disassemble main" \ + "Dump of assembler code for function main:.* $hex <\\+0\\>:.*End of assembler dump\." + +# This global is also not covered by the trace frame, and since it's +# non-const, we should _not_ read it from the executable, as that +# would show the variable's initial value, not the current at time the +# trace frame was created. + +gdb_test "print nonconstglob" \ + " = " "print nonconstglob on trace file" + gdb_test "tfind" "Target failed to find requested trace frame." \ "tfind does not find a second frame in trace file" -- 2.30.2