使用 Visual Studio 将内存解释为在运行时确定的特定类型

Interpret memory as specific type determined at runtime using Visual Studio

提问人:Luchian Grigore 提问时间:4/2/2015 更新时间:4/2/2015 访问量:55

问:

我正在编写一些必须是通用的调试功能,并且为了不修改大量现有代码,我正在通过复制它们的内存布局(我知道指针和复杂成员不可靠)和对象的类型到缓冲区(作为字符串)+一些元数据(大小和填充字节以对齐)来跟踪一些对象(其中大多数没有任何共同点)。

所以我基本上会有一些记忆:

Object1[padding][size][morepadding][object in binary form of size size] Object2[....]

这一切都有效,当我想检查一个对象时,我会打开一个监视窗口并检查.我正确地看到了我需要的成员。我想在调试器中自动执行此操作。(Object1*)(&[object in binary form])

有没有办法让调试/监视/任何窗口直接向我显示对象,而不必强制转换为类型?

(我已经探索了多种选择,这是侵入性较小的,这就是我选择它的原因。这不是一个 XY 问题。如果没有办法做到这一点,我将继续手动投射)

C++ 可视化工作室 2012

评论

0赞 softwariness 4/3/2015
这听起来类似于在Visual Studio中可视化boost::optional的问题,对于它有一个解决方案(VS2012的C++调试器可视化工具),你可以适应它(我从未使用过它,所以不能保证它,但我之前在调试器问题的上下文中看到过它)。boost::optional

答: 暂无答案