aboutsummaryrefslogtreecommitdiff
path: root/scripts/gdb/kstd/string.py
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-05-01 20:46:21 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-05-01 20:46:21 +0200
commit61949538ad6d114c1c2a788928a0b9706b4efc76 (patch)
treea1cf47e160d040ea4b199b6ca089e4580a810a7f /scripts/gdb/kstd/string.py
parentb1405c44434fbfa535348d310aa3243203aefb06 (diff)
downloadkernel-61949538ad6d114c1c2a788928a0b9706b4efc76.tar.xz
kernel-61949538ad6d114c1c2a788928a0b9706b4efc76.zip
debug: add support for kstd pretty printing
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"