summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTim Wiederhake <tim.wiederhake@intel.com>2017-03-21 08:19:59 +0100
committerTim Wiederhake <tim.wiederhake@intel.com>2017-03-21 08:19:59 +0100
commitcee59b3feac9a8f6300a5b788e3db4e15af2a894 (patch)
tree3ae196bdbd61797105f0c3b50c34dc8ecbc8b027 /gdb
parent09220eae9df07c40d206a35e6caaecba92ab8f46 (diff)
downloadbinutils-gdb-cee59b3feac9a8f6300a5b788e3db4e15af2a894.tar.gz
Fix break on Python 2
This changes the return type of "gdb.BtraceInstruction.data ()" from "memoryview" to "buffer" on Python 2.7 and below, similar to what "gdb.Inferior.read_memory ()" does.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/python.texi3
-rw-r--r--gdb/python/py-record-btrace.c5
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.python/py-record-btrace.exp6
6 files changed, 27 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 02ab32c697f..95c847bc79a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-21 Tim Wiederhake <tim.wiederhake@intel.com>
+
+ * python/py-record-btrace.c (btpy_insn_data): Change return type
+ for Python 2.
+
2017-03-20 Simon Marchi <simon.marchi@polymtl.ca>
* spu-linux-nat.c (spu_fetch_inferior_registers,
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 1657ab83d31..8253cbeac8f 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-21 Tim Wiederhake <tim.wiederhake@intel.com>
+
+ * python.texi (Recordings In Python): Document return type of
+ gdb.BtraceInstruction.data.
+
2017-03-20 Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
* gdb.texinfo (gdb/mi Symbol Query Commands): Document new MI
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index f6ec08c7aa2..1fb8b259911 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -3185,7 +3185,8 @@ if the instruction is a gap or the debug symbols could not be read.
@defvar BtraceInstruction.data
A buffer with the raw instruction data. May be @code{None} if the
-instruction is a gap.
+instruction is a gap. In Python 3, the return value is a @code{memoryview}
+object.
@end defvar
@defvar BtraceInstruction.decoded
diff --git a/gdb/python/py-record-btrace.c b/gdb/python/py-record-btrace.c
index 6158f31fe9a..c8163326d01 100644
--- a/gdb/python/py-record-btrace.c
+++ b/gdb/python/py-record-btrace.c
@@ -330,7 +330,12 @@ btpy_insn_data (PyObject *self, void *closure)
if (object == NULL)
return NULL;
+#ifdef IS_PY3K
return PyMemoryView_FromObject (object);
+#else
+ return PyBuffer_FromObject (object, 0, Py_END_OF_BUFFER);
+#endif
+
}
/* Implementation of BtraceInstruction.decode [str]. Returns
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2853d8a3b86..7937ee8f62f 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-21 Tim Wiederhake <tim.wiederhake@intel.com>
+
+ * gdb.python/py-record-btrace.exp: Check for buffer on Python 2
+ and memory view on Python 3.
+
2017-03-20 Artemiy Volkov <artemiyv@acm.org>
Keith Seitz <keiths@redhat.com>
diff --git a/gdb/testsuite/gdb.python/py-record-btrace.exp b/gdb/testsuite/gdb.python/py-record-btrace.exp
index 65a3e7d0413..7752cac5b79 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace.exp
+++ b/gdb/testsuite/gdb.python/py-record-btrace.exp
@@ -85,7 +85,11 @@ with_test_prefix "instruction " {
gdb_test "python print(i.error)" "None"
gdb_test "python print(i.sal)" "symbol and line for .*"
gdb_test "python print(i.pc)" "$decimal"
- gdb_test "python print(i.data)" "<memory at $hex>"
+ if { $gdb_py_is_py3k == 0 } {
+ gdb_test "python print(repr(i.data))" "<read-only buffer for $hex,.*>"
+ } else {
+ gdb_test "python print(repr(i.data))" "<memory at $hex>"
+ }
gdb_test "python print(i.decoded)" ".*"
gdb_test "python print(i.size)" "$decimal"
gdb_test "python print(i.is_speculative)" "False"