aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/lib')
-rw-r--r--gdb/python/lib/gdb/__init__.py19
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