set_thread(thread_id)
frames = []
current_number = 0
- # FIXME could invoke frame filters here.
try:
current_frame = gdb.newest_frame()
except gdb.error:
}
-# FIXME 'format' & hex
# FIXME supportsVariableType handling
@request("evaluate")
def eval_request(*, expression, frameId=None, context="variables", **args):
@request("variables")
# Note that we ignore the 'filter' field. That seems to be
# specific to javascript.
-# FIXME: implement format
def variables(*, variablesReference, start=0, count=0, **args):
result = send_gdb_with_response(
lambda: _variables(variablesReference, start, count)
global _expected_stop
obj = {
"threadId": gdb.selected_thread().global_num,
- # FIXME we don't support non-stop for now.
"allThreadsStopped": True,
}
if isinstance(event, gdb.BreakpointEvent):
# Ignore the expected stop, we hit a breakpoint instead.
- # FIXME differentiate between 'breakpoint', 'function breakpoint',
- # 'data breakpoint' and 'instruction breakpoint' here.
_expected_stop = StopKinds.BREAKPOINT
obj["hitBreakpointIds"] = [x.number for x in event.breakpoints]
elif _expected_stop is None:
@request("continue")
def continue_request(**args):
send_gdb(ExecutionInvoker("continue", None))
- # FIXME Just ignore threadId for the time being, and assume all-stop.
return {"allThreadsContinued": True}