我想编写一个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 一样。

09-08 04:13