在调试器中查看大多数派生类型

Pup*_*ppy 7 c++ visual-studio-2010

我正在编写一个C++项目并构建一个包含各种继承相关类型的DAG.我在施工后放置了一个断点,我想查看DAG.但调试器只显示基类.它将命名__vfptr条目旁边最派生的类型,但我实际上无法查看它的内容并验证它们是我期望它们.有没有办法直接在Locals窗口中查看派生类型最多的类型?

我的目标是x64,如果这是相关的.

Pav*_*l P 2

似乎对我有用的唯一方法是告诉调试器在 autoexp.dat 的帮助下正确显示对象。不知道在vs2010中效果如何,我还在用2008。这个方法非常适合智能指针。如果您尝试查看原始指针内部,那么我想您需要在监视/快速监视窗口中手动转换指针。如果它是某种智能指针或存储原始基指针的类,那么您可以简单地使用 autoexp.dat 以这种方式完成它(假设您的基 ptr 称为 m_ptr):

smart_ptr<*>{
preview
(
    #if (($e.m_ptr)!=0)
    (
    #(
        "smart_ptr ",
        (*(($T1 *)$e.m_ptr))
    )
    )
    #else
    (
        #("<Bad Ptr>")
    )
)
children
(
    #(
        ptr: (*(($T1 *)$e.m_ptr))
    )
)
Run Code Online (Sandbox Code Playgroud)

}