aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2020-08-17 08:50:35 -0600
committerTom Tromey <tromey@adacore.com>2020-08-17 08:50:35 -0600
commitb017825fabd0ff6f6ff2a8526d50d0b7218606d0 (patch)
treea35b73b6f6bb832682dc9b0e957fe3881b4bd96c /gdb
parent7635cf797e267246b858d3daa3d781135baa0ea4 (diff)
downloadgdb-b017825fabd0ff6f6ff2a8526d50d0b7218606d0.zip
gdb-b017825fabd0ff6f6ff2a8526d50d0b7218606d0.tar.gz
gdb-b017825fabd0ff6f6ff2a8526d50d0b7218606d0.tar.bz2
Convert CORE_ADDR to Python using gdb_py_object_from_ulongest
An internal test failed on a riscv64-elf cross build because Inferior.search_memory returned a negative value. I tracked this down to to use of PyLong_FromLong in infpy_search_memory. Then, I looked at other conversions of CORE_ADDR to Python and fixed these as well. I don't think there is a good way to write a test for this. gdb/ChangeLog 2020-08-17 Tom Tromey <tromey@adacore.com> * python/py-inferior.c (infpy_search_memory): Use gdb_py_object_from_ulongest. * python/py-infevents.c (create_inferior_call_event_object) (create_memory_changed_event_object): Use gdb_py_object_from_ulongest. * python/py-linetable.c (ltpy_entry_get_pc): Use gdb_py_object_from_ulongest.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/python/py-inferior.c2
-rw-r--r--gdb/python/py-infevents.c4
-rw-r--r--gdb/python/py-linetable.c2
4 files changed, 14 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d7e5606..e15dd15 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2020-08-17 Tom Tromey <tromey@adacore.com>
+
+ * python/py-inferior.c (infpy_search_memory): Use
+ gdb_py_object_from_ulongest.
+ * python/py-infevents.c (create_inferior_call_event_object)
+ (create_memory_changed_event_object): Use
+ gdb_py_object_from_ulongest.
+ * python/py-linetable.c (ltpy_entry_get_pc): Use
+ gdb_py_object_from_ulongest.
+
2020-08-17 Simon Marchi <simon.marchi@polymtl.ca>
* loc.c (class symbol_needs_eval_context): Fix indentation.
diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
index b9268c1..a769951 100644
--- a/gdb/python/py-inferior.c
+++ b/gdb/python/py-inferior.c
@@ -736,7 +736,7 @@ infpy_search_memory (PyObject *self, PyObject *args, PyObject *kw)
GDB_PY_HANDLE_EXCEPTION (except);
if (found)
- return PyLong_FromLong (found_addr);
+ return gdb_py_object_from_ulongest (found_addr).release ();
else
Py_RETURN_NONE;
}
diff --git a/gdb/python/py-infevents.c b/gdb/python/py-infevents.c
index 291cb27..3cf7461 100644
--- a/gdb/python/py-infevents.c
+++ b/gdb/python/py-infevents.c
@@ -48,7 +48,7 @@ create_inferior_call_event_object (inferior_call_kind flag, ptid_t ptid,
if (evpy_add_attribute (event.get (), "ptid", ptid_obj.get ()) < 0)
return NULL;
- gdbpy_ref<> addr_obj (PyLong_FromLongLong (addr));
+ gdbpy_ref<> addr_obj = gdb_py_object_from_ulongest (addr);
if (addr_obj == NULL)
return NULL;
@@ -97,7 +97,7 @@ create_memory_changed_event_object (CORE_ADDR addr, ssize_t len)
if (event == NULL)
return NULL;
- gdbpy_ref<> addr_obj (PyLong_FromLongLong (addr));
+ gdbpy_ref<> addr_obj = gdb_py_object_from_ulongest (addr);
if (addr_obj == NULL)
return NULL;
diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c
index 858313b..49e98c0 100644
--- a/gdb/python/py-linetable.c
+++ b/gdb/python/py-linetable.c
@@ -336,7 +336,7 @@ ltpy_entry_get_pc (PyObject *self, void *closure)
{
linetable_entry_object *obj = (linetable_entry_object *) self;
- return gdb_py_object_from_longest (obj->pc).release ();
+ return gdb_py_object_from_ulongest (obj->pc).release ();
}
/* LineTable iterator functions. */