From ca1a2fa607a3ce95d8cf68f1a7a481d62b0ecf72 Mon Sep 17 00:00:00 2001 From: JSDurand Date: Sat, 22 Jul 2023 11:37:03 +0800 Subject: Add experimental python scripts for debugging * chain/src/item/default/printer.lldb: * chain/src/item/default/printer.py: These are for experimenting with debugger supports. --- chain/src/item/default/printer.lldb | 1 + chain/src/item/default/printer.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 chain/src/item/default/printer.lldb create mode 100644 chain/src/item/default/printer.py diff --git a/chain/src/item/default/printer.lldb b/chain/src/item/default/printer.lldb new file mode 100644 index 0000000..eb0032a --- /dev/null +++ b/chain/src/item/default/printer.lldb @@ -0,0 +1 @@ +type summary add -x "DefaultForest" -e -F ForestPrinter \ No newline at end of file diff --git a/chain/src/item/default/printer.py b/chain/src/item/default/printer.py new file mode 100644 index 0000000..5670545 --- /dev/null +++ b/chain/src/item/default/printer.py @@ -0,0 +1,33 @@ +import lldb + +class ForestPrinter: + "Print a Forest" + + def __init__(self, val): + self.forest = val + self.root = val["root"] + self.graph = val["graph"] + + def to_string(self): + return "a forest with root {} and graph {}".format(self.root, self.graph) + +def lookup(val): + lookup_tag = val.type.tag + if lookup_tag is None: + return None + if lookup_tag.startswith("chain::item::default::DefaultForest"): + return ForestPrinter(val) + + return None + + +def ForestPrint(valobj, dict): + objtype = valobj.type + + print(dir(valobj)) + print(valobj.GetValue()) + + return "hihi" + +# co sc i -r ../chain/src/item/default/printer.py +# type summary add -x "DefaultForest" -e -F printer.ForestPrint --category Rust -- cgit v1.2.3-18-g5258