blob: 217c3bb6a8e255d0a4cecbc9c813d0b424656c5e [file] [edit]
from abc import ABCMeta, abstractmethod
import lldb
class ScriptedStringSummary(metaclass=ABCMeta):
"""
The base class for a scripted string summary provider.
A summary provider produces the one-line string shown next to a value in
`frame variable`/`expression` output. Register it with
`type summary add -l <ClassName> <TypeName>`.
Most of the base class methods are `@abstractmethod` that need to be
overwritten by the inheriting class.
"""
def __init__(self):
"""Construct a scripted summary provider.
Summary providers are constructed with no arguments and are shared
across every value they're asked to summarize.
"""
pass
@abstractmethod
def get_summary(
self, valobj: lldb.SBValue, options: lldb.SBTypeSummaryOptions
) -> str:
"""Get the summary string for a value.
Args:
valobj (lldb.SBValue): The value to summarize.
options (lldb.SBTypeSummaryOptions): The options to use when
producing the summary.
Returns:
str: The summary string for `valobj`.
"""
pass