diff options
Diffstat (limited to 'gdb/python/lib')
-rw-r--r-- | gdb/python/lib/gdb/__init__.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py index 11a1b44..d5e7eac 100644 --- a/gdb/python/lib/gdb/__init__.py +++ b/gdb/python/lib/gdb/__init__.py @@ -17,6 +17,7 @@ import traceback import os import sys import _gdb +from contextlib import contextmanager # Python 3 moved "reload" if sys.version_info >= (3, 4): @@ -231,6 +232,24 @@ def find_pc_line(pc): return current_progspace().find_pc_line(pc) +def set_parameter(name, value): + """Set the GDB parameter NAME to VALUE.""" + execute('set ' + name + ' ' + str(value), to_string=True) + + +@contextmanager +def with_parameter(name, value): + """Temporarily set the GDB parameter NAME to VALUE. + Note that this is a context manager.""" + old_value = parameter(name) + set_parameter(name, value) + try: + # Nothing that useful to return. + yield None + finally: + set_parameter(name, old_value) + + try: from pygments import formatters, lexers, highlight |