gdb:检查whatis以智能地打印值

时间:2011-10-17 12:46:54

标签: c++ c gdb

我想写一个gdb函数来打印某些东西的值,具体取决于它的参数类型,如:

define psmart
  if (whatis $arg0) =~ vector
    pvector   // stl-views
  else if (it's a pointer)
    p*
  else
    p
  end
end

我目前无法以某种方式检查gdb函数中whatis的输出。请指出我如何做到这一点(或提供更多电源/控制的替代工具)。

1 个答案:

答案 0 :(得分:2)

  

请指出我如何做到这一点(或提供更多的替代工具)   电源/控制)

也许你根本不应该写这个gdb函数。相反,在Python中使用gdb pretty-printers。配置完成后,print命令将检测STL容器,无需您的任何努力,并以更加人性化的形式输出它们,如 stl-views 那样。