1
0
mirror of https://github.com/nlohmann/json.git synced 2025-07-28 12:02:00 +03:00

Fix gdb pretty printer (#4343)

This commit is contained in:
Yuanhao Jia
2024-04-13 20:11:49 +08:00
committed by GitHub
parent 97f0bdaf9a
commit 01da82eae2

View File

@ -17,16 +17,16 @@ def json_lookup_function(val):
if m := ns_pattern.fullmatch(str(val.type.strip_typedefs().name)):
name = m.group('name')
if name and name.startswith('basic_json<') and name.endswith('>'):
m = ns_pattern.fullmatch(str(val['m_type']))
m = ns_pattern.fullmatch(str(val["m_data"]['m_type']))
t = m.group('name')
if t and t.startswith('detail::value_t::'):
try:
union_val = val['m_value'][t.removeprefix('detail::value_t::')]
union_val = val["m_data"]['m_value'][t.removeprefix('detail::value_t::')]
if union_val.type.code == gdb.TYPE_CODE_PTR:
return gdb.default_visualizer(union_val.dereference())
else:
return JsonValuePrinter(union_val)
except Exception:
return JsonValuePrinter(val['m_type'])
return JsonValuePrinter(val["m_data"]['m_type'])
gdb.pretty_printers.append(json_lookup_function)