blob: 73c22d648d6e785a6c82281a6bb9ec62654a90b5 (
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
27
|
import gdb
class KstdStringPrinter(gdb.ValuePrinter):
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:
if hasattr(data_pointer, "lazy_string"):
return data_pointer.lazy_string(encoding="utf-8", length=string_length)
return data_pointer.string(encoding="utf-8", length=string_length)
except gdb.error:
return "<unreadable memory>"
def display_hint(self):
return "string"
|