From: Tom Tromey Date: Mon, 30 Oct 2023 16:23:35 +0000 (-0600) Subject: Fix a bug in DAP scopes code X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e9dacb1d6caa5770d3e1722adc0ec74ff13a7a89;p=binutils-gdb.git 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. --- diff --git a/gdb/python/lib/gdb/dap/scopes.py b/gdb/python/lib/gdb/dap/scopes.py index 87f2ed7547f..13c35817fb6 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))