aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python-internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/python-internal.h')
-rw-r--r--gdb/python/python-internal.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index 67de622..30d7533 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -80,6 +80,8 @@ typedef int Py_ssize_t;
/* Also needed to parse enum var_types. */
#include "command.h"
+#include "exceptions.h"
+
struct block;
struct value;
struct language_defn;
@@ -179,9 +181,7 @@ extern const struct language_defn *python_language;
#define GDB_PY_HANDLE_EXCEPTION(Exception) \
do { \
if (Exception.reason < 0) \
- return PyErr_Format (Exception.reason == RETURN_QUIT \
- ? PyExc_KeyboardInterrupt : PyExc_RuntimeError, \
- "%s", Exception.message); \
+ return gdbpy_convert_exception (Exception); \
} while (0)
/* Use this after a TRY_EXCEPT to throw the appropriate Python
@@ -190,9 +190,7 @@ extern const struct language_defn *python_language;
do { \
if (Exception.reason < 0) \
{ \
- PyErr_Format (Exception.reason == RETURN_QUIT \
- ? PyExc_KeyboardInterrupt : PyExc_RuntimeError, \
- "%s", Exception.message); \
+ gdbpy_convert_exception (Exception); \
return -1; \
} \
} while (0)
@@ -222,7 +220,8 @@ int gdbpy_is_value_object (PyObject *obj);
/* Note that these are declared here, and not in python.h with the
other pretty-printer functions, because they refer to PyObject. */
PyObject *apply_varobj_pretty_printer (PyObject *print_obj,
- struct value **replacement);
+ struct value **replacement,
+ struct ui_file *stream);
PyObject *gdbpy_get_varobj_pretty_printer (struct value *value);
char *gdbpy_get_display_hint (PyObject *printer);
PyObject *gdbpy_default_visualizer (PyObject *self, PyObject *args);
@@ -233,8 +232,13 @@ extern PyObject *gdbpy_to_string_cst;
extern PyObject *gdbpy_display_hint_cst;
extern PyObject *gdbpy_enabled_cst;
+/* Exception types. */
+extern PyObject *gdbpy_gdb_error;
+extern PyObject *gdbpy_gdb_memory_error;
extern PyObject *gdbpy_gdberror_exc;
+extern PyObject *gdbpy_convert_exception (struct gdb_exception);
+
int get_addr_from_python (PyObject *obj, CORE_ADDR *addr);
#endif /* GDB_PYTHON_INTERNAL_H */