aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-10-30 10:23:35 -0600
committerTom Tromey <tromey@adacore.com>2023-11-14 08:44:31 -0700
commite9dacb1d6caa5770d3e1722adc0ec74ff13a7a89 (patch)
treecfe98514c91cf4e65405998b396b98ef251d2de7 /gdb/python
parent4ead09a294adbb718d642874a554e78d931c2830 (diff)
downloadgdb-e9dacb1d6caa5770d3e1722adc0ec74ff13a7a89.zip
gdb-e9dacb1d6caa5770d3e1722adc0ec74ff13a7a89.tar.gz
gdb-e9dacb1d6caa5770d3e1722adc0ec74ff13a7a89.tar.bz2
Fix a bug in DAP scopes code
While working on static links, I noticed that the DAP scopes code does not handle the scenario where a frame decorator returns None. This situation should be handled identically to a frame decorator returning an empty iterator.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/lib/gdb/dap/scopes.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/gdb/python/lib/gdb/dap/scopes.py b/gdb/python/lib/gdb/dap/scopes.py
index 87f2ed7..13c3581 100644
--- a/gdb/python/lib/gdb/dap/scopes.py
+++ b/gdb/python/lib/gdb/dap/scopes.py
@@ -107,10 +107,14 @@ def _get_scope(id):
else:
frame = frame_for_id(id)
scopes = []
- args = frame.frame_args()
+ # Make sure to handle the None case as well as the empty
+ # iterator case.
+ args = tuple(frame.frame_args() or ())
if args:
scopes.append(_ScopeReference("Arguments", "arguments", frame, args))
- locs = frame.frame_locals()
+ # Make sure to handle the None case as well as the empty
+ # iterator case.
+ locs = tuple(frame.frame_locals() or ())
if locs:
scopes.append(_ScopeReference("Locals", "locals", frame, locs))
scopes.append(_RegisterReference("Registers", frame))