"""
Fuzz tests an object after the default construction to make sure it does not crash lldb.
"""

import sys
import lldb

def fuzz_obj(obj):
    obj.IsInlined()
    obj.GetInlinedName()
    obj.GetInlinedCallSiteFile()
    obj.GetInlinedCallSiteLine()
    obj.GetInlinedCallSiteColumn()
    obj.GetParent()
    obj.GetSibling()
    obj.GetFirstChild()
    obj.GetDescription(lldb.SBStream())
