diff options
author | Tom Tromey <tromey@adacore.com> | 2020-08-17 08:50:35 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-08-17 08:50:35 -0600 |
commit | b017825fabd0ff6f6ff2a8526d50d0b7218606d0 (patch) | |
tree | a35b73b6f6bb832682dc9b0e957fe3881b4bd96c | |
parent | 7635cf797e267246b858d3daa3d781135baa0ea4 (diff) | |
download | gdb-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.
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/python/py-inferior.c | 2 | ||||
-rw-r--r-- | gdb/python/py-infevents.c | 4 | ||||
-rw-r--r-- | gdb/python/py-linetable.c | 2 |
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. */ |