MI: Fix printing of frame architecture with Python frame filters enabled
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 27 Aug 2018 20:52:44 +0000 (21:52 +0100)
committerSimon Marchi <simon.marchi@ericsson.com>
Mon, 27 Aug 2018 21:12:41 +0000 (17:12 -0400)
Commit 6d52907e226a (MI: Print frame architecture when printing frames
on an MI channel) added frame's architecture to MI frame output. However
the frame architecture was not correctly printed in the output of
"-stack-list-frames" with frame filters enabled (via "-enable-frame-filters").
This was because with frame filters enabled, the actual frame printing is
done in "py_print_frame" rather than "print_frame". This issue is now fixed.

gdb/Changelog:
2018-08-27  Jan Vrany  <jan.vrany@fit.cvut.cz>

* python/py-framefilter.c (py_print_frame): Print frame architecture
when printing on an MI output.

gdb/testsuite/Changelog:
2018-08-27  Jan Vrany  <jan.vrany@fit.cvut.cz>

* gdb.python/py-framefilter-mi.exp: Update regexp to
check for "arch" field in frame output.

gdb/ChangeLog
gdb/python/py-framefilter.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-framefilter-mi.exp

index 4ef1765286a9d33db5d805d10c854edee8bc3c3a..a3f8620af69cfff4b51ce927c7bb63a944eef0db 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-27  Jan Vrany  <jan.vrany@fit.cvut.cz>
+
+       * python/py-framefilter.c (py_print_frame): Print frame architecture
+       when printing on an MI output.
+
 2018-08-27  Tom Tromey  <tom@tromey.com>
 
        PR build/23087:
index 4edefd48f9d903e60aa3679450a3139bc8ad5e2c..fe17b70f53da28ae47ea0c7a7ccd1cbc4f9b38be 100644 (file)
@@ -958,6 +958,9 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
              out->field_int ("line", line);
            }
        }
+      if (out->is_mi_like_p ())
+        out->field_string ("arch",
+                           (gdbarch_bfd_arch_info (gdbarch))->printable_name);
     }
 
   /* For MI we need to deal with the "children" list population of
index 6b5275a4cb3ad705c231143ee4176fb79ae027d7..03b36afbe0e84365d718e6463c561865b4189d93 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-27  Jan Vrany  <jan.vrany@fit.cvut.cz>
+
+       * gdb.python/py-framefilter-mi.exp: Update regexp to
+       check for "arch" field in frame output.
+
 2018-08-23  Kevin Buettner  <kevinb@redhat.com>
 
        * gdb.dwarf2/dw2-ranges-func.c: New file.
index 2ee8216bf0e52a1af3d4f52b1a6415db92136edd..6765f5c67dac24d88a3a0ddd691c55b6fd2deebb 100644 (file)
@@ -64,14 +64,16 @@ mi_gdb_test "-stack-list-locals --all-values" \
 mi_continue_to_line [gdb_get_line_number {Backtrace end breakpoint} ${srcfile}] \
   "step to breakpoint"
 
+set any "\[^\"\]+"
+
 mi_gdb_test "-stack-list-frames" \
-    "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*},frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*},frame={level=\"27\",addr=\"$hex\",func=\"niam\".*}\\\].*" \
+    "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*,arch=\"$any\"},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*,arch=\"$any\"},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"},frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,arch=\"$any\",children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*,arch=\"$any\"}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*,arch=\"$any\"},frame={level=\"27\",addr=\"$hex\",func=\"niam\".*,arch=\"$any\"}\\\].*" \
     "filtered stack listing"
 mi_gdb_test "-stack-list-frames 0 3" \
-    "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*}\\\]" \
+    "\\^done,stack=\\\[frame={level=\"0\",addr=\"$hex\",func=\"cnuf_dne.*\".*,arch=\"$any\"},frame={level=\"1\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"},frame={level=\"2\",addr=\"$hex\",func=\"bcnuf\".*,arch=\"$any\"},frame={level=\"3\",addr=\"$hex\",func=\"acnuf\".*,arch=\"$any\"}\\\]" \
     "filtered stack list 0 3"
 mi_gdb_test "-stack-list-frames 22 24" \
-    "\\^done,stack=\\\[frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*}\\\]" \
+    "\\^done,stack=\\\[frame={level=\"22\",addr=\"$hex\",func=\"1cnuf\".*,arch=\"$any\",children=\\\[frame={level=\"23\",addr=\"$hex\",func=\"func2\".*,arch=\"$any\"}\\\]},frame={level=\"24\",addr=\"$hex\",func=\"3cnuf\".*,arch=\"$any\"}\\\]" \
     "filtered stack list 22 24"
 
 #stack list arguments