我想编写一个gdb函数来打印某些东西的值,具体取决于它的参数类型,例如:
define psmart
if (whatis $arg0) =~ vector
pvector // stl-views
else if (it's a pointer)
p*
else
p
end
end
我目前无法以某种方式检查gdb函数中whatis的输出。请指出我该如何做(或提供更多功能/控制的替代工具)。
最佳答案
也许您根本不应该编写此gdb函数。而是在Python中使用gdb pretty-printers。完成配置后,print
命令将无需您的任何努力即可检测STL容器,并以更易于理解的形式输出它们,就像 STL-views 一样。