18a9fc1261
* data-directory/Makefile.in (PYTHON_FILES): Add type_printers.py. * python/lib/gdb/command/type_printers.py: New file. * python/lib/gdb/command/types.py (TypePrinter): New class. (_get_some_type_recognizers, get_type_recognizers, apply_type_recognizers, register_type_printer): New functions. * python/py-objfile.c (objfile_object) <type_printers>: New field. (objfpy_dealloc): Decref new field. (objfpy_new): Set new field. (objfpy_get_type_printers, objfpy_set_type_printers): New functions. (objfile_to_objfile_object): Set new field. (objfile_getset): Add "type_printers". * python/py-progspace.c (pspace_object) <type_printers>: New field. (pspy_dealloc): Decref new field. (pspy_new): Set new field. (pspy_get_type_printers, pspy_set_type_printers): New functions. (pspace_to_pspace_object): Set new field. (pspace_getset): Add "type_printers". * python/python.c (start_type_printers, apply_type_printers, free_type_printers): New functions. (_initialize_python): Set gdb.type_printers. * python/python.h (start_type_printers, apply_type_printers, free_type_printers): Declare. * typeprint.c (type_print_raw_options, default_ptype_flags): Update for new fields. (do_free_global_table, create_global_typedef_table, find_global_typedef): New functions. (find_typedef_in_hash): Use find_global_typedef. (whatis_exp): Use create_global_typedef_table. Change cleanup handling. * typeprint.h (struct type_print_options) <global_typedefs, global_printers>: New fields. doc * gdb.texinfo (Symbols): Document "info type-printers", "enable type-printer" and "disable type-printer". (Python API): Add new node to menu. (Type Printing API): New node. (Progspaces In Python): Document type_printers field. (Objfiles In Python): Likewise. (gdb.types) <get_type_recognizers, apply_type_recognizers, register_type_printer, TypePrinter>: Document. testsuite * gdb.base/completion.exp: Update for "info type-printers". * gdb.python/py-typeprint.cc: New file. * gdb.python/py-typeprint.exp: New file. * gdb.python/py-typeprint.py: New file.
58 lines
1.9 KiB
C
58 lines
1.9 KiB
C
/* Python/gdb header for generic use in gdb
|
|
|
|
Copyright (C) 2008-2012 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"
|
|
|
|
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"
|
|
|
|
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);
|
|
|
|
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 */
|