c++ - gdb : examining whatis to intelligently print values

标签 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 的输出。请指出如何做到这一点(或提供更多权力/控制的替代工具)。

最佳答案

Please point me how one can do this (or alternate tools that give more power/control)

也许你根本不应该写这个 gdb 函数。相反,使用 gdb pretty-printers在 Python 中。配置完成后,print 命令将检测 STL 容器,无需您进行任何操作,并像 STL-views 那样以更易于阅读的形式输出它们。

关于c++ - gdb : examining whatis to intelligently print values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7793938/

相关文章:

c - 如何修改 O(n) 列表长度函数以在 O(1) 中运行?

c++ - 如何将输入与文件中的内容匹配?我需要一个更好的解释。

c++ - WlanConnect 连接尝试失败

仅使用整数算法计算 C 中 N 个整数的平均值而不保留 N 个值

c++ - 即使有调试编译标志,表达式也是 "optimized out"

c - 输入重定向GDB

c - Linux共享内存段错误

c++ - 使用与用于编译实际代码的不同(更高)版本的 gcc 构建 strip/binutils 是否会导致任何问题?

c++ - 提升 this_thread interruptation_point not captured

c++ - 有什么区别?铿锵++ |铿锵 -std=c++11