gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 18:39:18 26 4
gpt4 key购买 nike

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

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

最佳答案

似乎对我有用的唯一方法是告诉调试器在 autoexp.dat 的帮助下正确显示对象。不知道在vs2010上效果如何,我还在用2008。这个方法很适合智能指针。如果你想查看原始指针的内部,我想,你需要在 watch/quick watch 窗口中手动转换指针。如果它是某种智能指针或存储原始基指针的类,那么您可以通过这种方式使用 autoexp.dat 简单地完成它(假设您的基指针称为 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))
)
)

关于c++ - 在调试器中查看大多数派生类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6961852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com