mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-23 10:17:53 +08:00
* python/python.c (gdbpy_solib_name): Use gdb_py_longest and
GDB_PY_LL_ARG. * python/python-internal.h (GDB_PY_LL_ARG, GDB_PY_LLU_ARG): New macros. (gdb_py_longest, gdb_py_ulongest): New typedefs. (gdb_py_long_from_longest, gdb_py_long_from_ulongest) (gdb_py_long_as_ulongest): New defines. (gdb_py_object_from_longest, gdb_py_object_from_ulongest) (gdb_py_int_as_long): Declare. * python/py-value.c (valpy_lazy_string): Use gdb_py_longest, GDB_PY_LL_ARG, gdb_py_object_from_longest. (valpy_long): Add comment. * python/py-utils.c (get_addr_from_python): Use gdb_py_long_as_ulongest. Handle overflow properly. (gdb_py_object_from_longest): New function. (gdb_py_object_from_ulongest): Likewise. (gdb_py_int_as_long): Likewise. * python/py-type.c (typy_array): Use gdb_py_int_as_long. * python/py-symtab.c (salpy_get_pc): Use gdb_py_long_from_ulongest. (salpy_get_line): Use PyInt_FromLong. * python/py-param.c (set_parameter_value): Use gdb_py_int_as_long. * python/py-lazy-string.c (stpy_get_address): Use gdb_py_long_from_ulongest. * python/py-frame.c (frapy_pc): Use gdb_py_long_from_ulongest. * python/py-cmd.c (cmdpy_completer): Use gdb_py_int_as_long. * python/py-breakpoint.c (bppy_set_thread): Use gdb_py_int_as_long. (bppy_set_task): Likewise. (bppy_set_ignore_count): Likewise. (bppy_set_hit_count): Likewise. * python/py-block.c (blpy_get_start): Use gdb_py_object_from_ulongest. (blpy_get_end): Likewise. (gdbpy_block_for_pc): Use gdb_py_ulongest and GDB_PY_LLU_ARG.
This commit is contained in:
@ -73,6 +73,32 @@ typedef int Py_ssize_t;
|
||||
#define PyEval_ReleaseLock()
|
||||
#endif
|
||||
|
||||
/* Python supplies HAVE_LONG_LONG and some `long long' support when it
|
||||
is available. These defines let us handle the differences more
|
||||
cleanly. */
|
||||
#ifdef HAVE_LONG_LONG
|
||||
|
||||
#define GDB_PY_LL_ARG "L"
|
||||
#define GDB_PY_LLU_ARG "K"
|
||||
typedef PY_LONG_LONG gdb_py_longest;
|
||||
typedef unsigned PY_LONG_LONG gdb_py_ulongest;
|
||||
#define gdb_py_long_from_longest PyLong_FromLongLong
|
||||
#define gdb_py_long_from_ulongest PyLong_FromUnsignedLongLong
|
||||
#define gdb_py_long_as_ulongest PyLong_AsUnsignedLongLong
|
||||
|
||||
#else /* HAVE_LONG_LONG */
|
||||
|
||||
#define GDB_PY_LL_ARG "L"
|
||||
#define GDB_PY_LLU_ARG "K"
|
||||
typedef long gdb_py_longest;
|
||||
typedef unsigned long gdb_py_ulongest;
|
||||
#define gdb_py_long_from_longest PyLong_FromLong
|
||||
#define gdb_py_long_from_ulongest PyLong_FromUnsignedLong
|
||||
#define gdb_py_long_as_ulongest PyLong_AsUnsignedLong
|
||||
|
||||
#endif /* HAVE_LONG_LONG */
|
||||
|
||||
|
||||
/* In order to be able to parse symtab_and_line_to_sal_object function
|
||||
a real symtab_and_line structure is needed. */
|
||||
#include "symtab.h"
|
||||
@ -243,4 +269,8 @@ extern PyObject *gdbpy_convert_exception (struct gdb_exception);
|
||||
|
||||
int get_addr_from_python (PyObject *obj, CORE_ADDR *addr);
|
||||
|
||||
PyObject *gdb_py_object_from_longest (LONGEST l);
|
||||
PyObject *gdb_py_object_from_ulongest (ULONGEST l);
|
||||
int gdb_py_int_as_long (PyObject *, long *);
|
||||
|
||||
#endif /* GDB_PYTHON_INTERNAL_H */
|
||||
|
Reference in New Issue
Block a user