tfile.exp: Test printing a non-const global that is not covered by the trace frame...
authorPedro Alves <palves@redhat.com>
Wed, 20 Mar 2013 11:28:55 +0000 (11:28 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 20 Mar 2013 11:28:55 +0000 (11:28 +0000)
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  <palves@redhat.com>
    Yao Qi  <yao@codesourcery.com>

* 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
gdb/testsuite/gdb.trace/tfile.c
gdb/testsuite/gdb.trace/tfile.exp

index 8888313f2471fa7863aec67e84ba43514375cacc..bb4977bfd84512fcff7050bca6daaacaae44ca4c 100644 (file)
@@ -1,3 +1,12 @@
+2013-03-20  Pedro Alves  <palves@redhat.com>
+           Yao Qi  <yao@codesourcery.com>
+
+       * 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  <jan.kratochvil@redhat.com>
 
        * gdb.base/valgrind-infcall.exp
index 11c79d9b12a95010b8a7b9a85990b77497538353..7c0c774fe837fc73c2c0dc14efdfcf1d9094c3bf 100644 (file)
@@ -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)
 {
index 2bdde372fafcd2d3ba0e3c9d768bafcb0eed0bef..56e2a799041764e7e9ec9abbe283e3aa8ce050c9 100644 (file)
@@ -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" \
+    " = <unavailable>" "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"