import lldb # FP16 summary def summary_FP16( valobj, internal_dict ): anon = valobj.GetChildAtIndex(1) m = anon.GetChildAtIndex(0).GetValueAsUnsigned() e = anon.GetChildAtIndex(1).GetValueAsUnsigned() s = anon.GetChildAtIndex(2).GetValueAsUnsigned() if e == 0: summary = "" if s == 0 else "-" summary += str( 2.0**(-14.0) * (m/1024.0) ) elif e == 31: if m == 0: summary = "+Inf" if s == 0 else "-Inf" else: summary = "NaN" else: summary = str( (-1.0)**s * 2.0**(e-15.0) * (1.0+m/1024.0) ) return summary def __lldb_init_module( debugger, dict ): debugger.HandleCommand('type summary add FP16 -w Half -F Half.summary_FP16') debugger.HandleCommand('type summary add half -w Half --summary-string "${var.fp16}"')