繁体   English   中英

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

[英]View most derived type in debugger

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

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

似乎对我有用的唯一方法是告诉调试器在autoexp.dat的帮助下正确显示对象。 不确定它在vs2010中的效果如何,我还在使用2008.这种方法非常适合智能指针。 如果您正在尝试查看原始指针,我猜,您需要在监视/快速监视窗口中手动转换指针。 如果它是某种smartpointer或存储该原始基指针的类,那么您可以通过这种方式使用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))
    )
)

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM