当我尝试将Python字符串作为GDB prettyprinter的子元素返回时,它会作为char数组返回。是否有办法将其作为普通字符串返回?
我有一个如下的pretty printer:
在这种情况下,名称和地址将作为字符数组在IDE中返回。
我还尝试将其转换为GDB值。
我有一个如下的pretty printer:
class APrinter:
def __init__(self, val):
self.name = "a name"
self.age = age
def children(self):
yield ('name', self.name)
yield ('age', self.age)
yield ('address', 'this is an address')
def display_hint(self):
return 'array'
在这种情况下,名称和地址将作为字符数组在IDE中返回。
我还尝试将其转换为GDB值。
yield ('address', gdb.Value('this is an address'))
这里来源于API,但它返回相同的结果。
然而,当我将其放入to_string
方法中时,它会正常打印出来,如下所示。
def to_string(self):
return 'this is an address'
vscode
、clion
和kdevelop
中尝试了一下,它们都将其打印为字符数组。 - Ezike Ebukadisplay_hint
从 "array" 改为 "map"。 - darcamochar*
:gdb.Value(...).cast(gdb.lookup_type("char").pointer())
。 - user202729