Files
Ebuka Ezike c46bfed1a4 [lldb] Add alternative SBThread::GetStopDescription (#165379)
the function signature for `GetStopDescription` is
`lldb::SBThread::GetStopDescription(char *dst_or_null, size_t len)`.
To get a description you need to call the function first time to get the
buffer size. a second time to get the description.

This is little worse from the python size as the signature is
`lldb.SBThread.GetStopDescription(int: len) -> list[str]` the user has
to pass the max size as possible with no way of checking if it is
enough.

This patch adds a new api
`lldb.SBThread.GetStopDescription(desc: lldb.SBStream()) -> bool` `bool
lldb::SBThread::GetStopDescription(lldb::SBStream &description)` which
handles this case.

Adds new Test case for lua.
2025-10-30 21:43:53 +00:00

40 lines
985 B
Python

"""
Fuzz tests an object after the default construction to make sure it does not crash lldb.
"""
import lldb
def fuzz_obj(obj):
obj.GetStopReason()
obj.GetStopReasonDataCount()
obj.GetStopReasonDataAtIndex(100)
obj.GetStopDescription(256)
obj.GetStopDescription(lldb.SBStream())
obj.GetThreadID()
obj.GetIndexID()
obj.GetName()
obj.GetQueueName()
obj.StepOver(lldb.eOnlyDuringStepping)
obj.StepInto(lldb.eOnlyDuringStepping)
obj.StepOut()
frame = lldb.SBFrame()
obj.StepOutOfFrame(frame)
obj.StepInstruction(True)
filespec = lldb.SBFileSpec()
obj.StepOverUntil(frame, filespec, 1234)
obj.RunToAddress(0xABCD)
obj.Suspend()
obj.Resume()
obj.IsSuspended()
obj.GetNumFrames()
obj.GetFrameAtIndex(200)
obj.GetSelectedFrame()
obj.SetSelectedFrame(999)
obj.GetProcess()
obj.GetDescription(lldb.SBStream())
obj.Clear()
for frame in obj:
s = str(frame)
len(obj)