From 967cf47793f3a66dd3f8637279fe6d891dd2de9f Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Fri, 4 Jun 2010 18:18:28 +0000 Subject: Add support for enabling/disabling individual pretty-printers. * python/py-prettyprint.c (search_pp_list): Skip disabled printers. * python/python-internal.h (gdbpy_enabled_cst): Declare. * python/python.c (gdbpy_enabled_cst): Define. (_initialize_python): Initialize gdbpy_enabled_cst. * NEWS: Add entry. doc/ * gdb.texinfo (Python API): New node `Disabling Pretty-Printers'. testsuite/ * gdb.python/py-prettyprint.exp: Add new test for enabled and disabled printers. * gdb.python/py-prettyprint.py (disable_lookup_function): New function. (enable_lookup_function): New function. --- gdb/python/py-prettyprint.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gdb/python/py-prettyprint.c') diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c index e678898..4d60c96 100644 --- a/gdb/python/py-prettyprint.c +++ b/gdb/python/py-prettyprint.c @@ -48,6 +48,11 @@ search_pp_list (PyObject *list, PyObject *value) if (! function) return NULL; + /* Skip if disabled. */ + if (PyObject_HasAttr (function, gdbpy_enabled_cst) + && ! PyObject_IsTrue (PyObject_GetAttr (function, gdbpy_enabled_cst))) + continue; + printer = PyObject_CallFunctionObjArgs (function, value, NULL); if (! printer) return NULL; -- cgit v1.1