blob: 6fa99960b4b933193c572cf9a50a92617d0bd3f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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"
|