Index: gdb/python/python.h |
diff --git a/gdb/python/python.h b/gdb/python/python.h |
index 0d072712af4e6da693a879c75d3b20a906ba4da0..c07b2aa719cb8d503e1e2f11202b234de78c8d57 100644 |
--- a/gdb/python/python.h |
+++ b/gdb/python/python.h |
@@ -1,6 +1,6 @@ |
/* Python/gdb header for generic use in gdb |
- Copyright (C) 2008-2012 Free Software Foundation, Inc. |
+ Copyright (C) 2008-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -21,13 +21,74 @@ |
#define GDB_PYTHON_H |
#include "value.h" |
+#include "mi/mi-cmds.h" |
-struct breakpoint_object; |
+struct gdbpy_breakpoint_object; |
/* The suffix of per-objfile scripts to auto-load. |
E.g. When the program loads libfoo.so, look for libfoo-gdb.py. */ |
#define GDBPY_AUTO_FILE_NAME "-gdb.py" |
+/* Python frame-filter status return values. */ |
+enum py_bt_status |
+ { |
+ /* Return when an error has occurred in processing frame filters, |
+ or when printing the stack. */ |
+ PY_BT_ERROR = -1, |
+ |
+ /* Return from internal routines to indicate that the function |
+ succeeded. */ |
+ PY_BT_OK = 1, |
+ |
+ /* Return when the frame filter process is complete, and all |
+ operations have succeeded. */ |
+ PY_BT_COMPLETED = 2, |
+ |
+ /* Return when the frame filter process is complete, but there |
+ were no filter registered and enabled to process. */ |
+ PY_BT_NO_FILTERS = 3 |
+ }; |
+ |
+/* Flags to pass to apply_frame_filter. */ |
+ |
+enum frame_filter_flags |
+ { |
+ /* Set this flag if frame level is to be printed. */ |
+ PRINT_LEVEL = 1, |
+ |
+ /* Set this flag if frame information is to be printed. */ |
+ PRINT_FRAME_INFO = 2, |
+ |
+ /* Set this flag if frame arguments are to be printed. */ |
+ PRINT_ARGS = 4, |
+ |
+ /* Set this flag if frame locals are to be printed. */ |
+ PRINT_LOCALS = 8, |
+ }; |
+ |
+/* A choice of the different frame argument printing strategies that |
+ can occur in different cases of frame filter instantiation. */ |
+typedef enum py_frame_args |
+{ |
+ /* Print no values for arguments when invoked from the MI. */ |
+ NO_VALUES = PRINT_NO_VALUES, |
+ |
+ MI_PRINT_ALL_VALUES = PRINT_ALL_VALUES, |
+ |
+ /* Print only simple values (what MI defines as "simple") for |
+ arguments when invoked from the MI. */ |
+ MI_PRINT_SIMPLE_VALUES = PRINT_SIMPLE_VALUES, |
+ |
+ |
+ /* Print only scalar values for arguments when invoked from the |
+ CLI. */ |
+ CLI_SCALAR_VALUES, |
+ |
+ /* Print all values for arguments when invoked from the |
+ CLI. */ |
+ CLI_ALL_VALUES |
+} py_frame_args; |
+ |
extern void finish_python_initialization (void); |
void eval_python_from_control_command (struct command_line *); |
@@ -41,12 +102,23 @@ int apply_val_pretty_printer (struct type *type, const gdb_byte *valaddr, |
const struct value_print_options *options, |
const struct language_defn *language); |
+enum py_bt_status apply_frame_filter (struct frame_info *frame, int flags, |
+ enum py_frame_args args_type, |
+ struct ui_out *out, int frame_low, |
+ int frame_high); |
+ |
void preserve_python_values (struct objfile *objfile, htab_t copied_types); |
-void gdbpy_load_auto_scripts_for_objfile (struct objfile *objfile); |
+const struct script_language *gdbpy_script_language_defn (void); |
+ |
+int gdbpy_should_stop (struct gdbpy_breakpoint_object *bp_obj); |
+ |
+int gdbpy_breakpoint_has_py_cond (struct gdbpy_breakpoint_object *bp_obj); |
+ |
+void *start_type_printers (void); |
-int gdbpy_should_stop (struct breakpoint_object *bp_obj); |
+char *apply_type_printers (void *, struct type *type); |
-int gdbpy_breakpoint_has_py_cond (struct breakpoint_object *bp_obj); |
+void free_type_printers (void *arg); |
#endif /* GDB_PYTHON_H */ |