18from .frames
import frame_for_id
19from .startup
import in_gdb_thread
20from .server
import request
21from .varref
import BaseReference
36gdb.events.cont.connect(clear_scopes)
46 inf_frame = frame.inferior_frame()
51 name = str(sym.symbol())
56 val = sym.symbol().
value(inf_frame)
57 elif not isinstance(val, gdb.Value):
63 def __init__(self, name, hint, frame, var_list):
68 self.
func = frame.function()
69 self.
line = frame.line()
76 result[
"presentationHint"] = self.
hint
78 result[
"expensive"] =
False
79 result[
"namedVariables"] = len(self.
var_list)
80 if self.
line is not None:
81 result[
"line"] = self.
line
99 name,
"registers", frame, frame.inferior_frame().architecture().registers()
113 global frame_to_scope
114 if id
in frame_to_scope:
115 scopes = frame_to_scope[id]
117 frame = frame_for_id(id)
121 args = tuple(frame.frame_args()
or ())
126 locs = tuple(frame.frame_locals()
or ())
130 frame_to_scope[id] = scopes
131 return [x.to_object()
for x
in scopes]
135def scopes(*, frameId: int, **extra):
fetch_one_child(self, idx)
__init__(self, name, frame)
fetch_one_child(self, idx)
__init__(self, name, hint, frame, var_list)