aboutsummaryrefslogtreecommitdiff
path: root/scripts/gdb/kstd/string.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gdb/kstd/string.py')
-rw-r--r--scripts/gdb/kstd/string.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/gdb/kstd/string.py b/scripts/gdb/kstd/string.py
new file mode 100644
index 0000000..6fa9996
--- /dev/null
+++ b/scripts/gdb/kstd/string.py
@@ -0,0 +1,26 @@
+import gdb
+
+
+class KstdStringPrinter:
+
+ def __init__(self, val):
+ self.val = val
+
+ def to_string(self):
+ storage = self.val["m_storage"]
+ storage_size = int(storage["m_size"])
+
+ if storage_size <= 0:
+ return '""'
+
+ data_pointer = storage["m_data"]
+ string_length = storage_size - 1
+
+ try:
+ string_data = data_pointer.string(encoding="utf-8", length=string_length)
+ return f"{string_data}"
+ except gdb.error:
+ return "<unreadable memory>"
+
+ def display_hint(self):
+ return "string"