| /* Python/gdb header for generic use in gdb |
| |
| Copyright (C) 2008-2013 Free Software Foundation, Inc. |
| |
| This file is part of GDB. |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| |
| #ifndef GDB_PYTHON_H |
| #define GDB_PYTHON_H |
| |
| #include "value.h" |
| #include "mi/mi-cmds.h" |
| |
| struct 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 *); |
| |
| void source_python_script (FILE *file, const char *filename); |
| |
| int apply_val_pretty_printer (struct type *type, const gdb_byte *valaddr, |
| int embedded_offset, CORE_ADDR address, |
| struct ui_file *stream, int recurse, |
| const struct value *val, |
| 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); |
| |
| int gdbpy_should_stop (struct breakpoint_object *bp_obj); |
| |
| int gdbpy_breakpoint_has_py_cond (struct breakpoint_object *bp_obj); |
| |
| void *start_type_printers (void); |
| |
| char *apply_type_printers (void *, struct type *type); |
| |
| void free_type_printers (void *arg); |
| |
| #endif /* GDB_PYTHON_H */ |