MCPcopy Create free account
hub / github.com/apache/brpc / bthread_frame

Function bthread_frame

tools/lldb_bthread_stack.py:233–254  ·  view source on GitHub ↗

r"""bthread_frame , select bthread frame by id

(debugger, command, result, internal_dict)

Source from the content-addressed store, hash-verified

231
232
233def bthread_frame(debugger, command, result, internal_dict):
234 r"""bthread_frame <id>, select bthread frame by id"""
235 bthread = global_state.get_bthread(command)
236 if bthread is None:
237 return
238
239 stack = bthread.GetChildMemberWithName("stack")
240 context = stack.Dereference().GetChildMemberWithName("context")
241
242 target = debugger.GetSelectedTarget()
243 uint64_t_type = target.FindFirstType("uint64_t")
244 target = debugger.GetSelectedTarget()
245
246 rip = target.CreateValueFromAddress("rip", lldb.SBAddress(
247 context.GetValueAsUnsigned() + 7*8, target), uint64_t_type).GetValueAsUnsigned()
248 rbp = target.CreateValueFromAddress("rbp", lldb.SBAddress(
249 context.GetValueAsUnsigned() + 6*8, target), uint64_t_type).GetValueAsUnsigned()
250 rsp = context.GetValueAsUnsigned() + 8*8
251
252 debugger.HandleCommand(f"register write rip {rip}")
253 debugger.HandleCommand(f"register write rbp {rbp}")
254 debugger.HandleCommand(f"register write rsp {rsp}")
255
256
257def bthread_all(debugger, command, result, internal_dict):

Callers 1

bthread_allFunction · 0.85

Calls 2

get_bthreadMethod · 0.80
DereferenceMethod · 0.80

Tested by

no test coverage detected