Visual Studio C++调试器:没有十六进制转储?

7

为什么集成式调试器与调试器相比功能如此之弱?我无法查看内存中对象的内容。例如,我正在使用位图,并希望在内存中查看它们。我需要更好的调试器吗?如果是这样,我对推荐感兴趣。不需要太强大的反汇编器,只需要调试器。


我已经花了3个小时寻找有关如何在windbg和visual studio中读取本地变量的基本信息。我找不到任何有效的信息来源,也找不到任何可靠的信息来源。这与GDB完全不同,您可以查看所有内容,并且文档非常清晰简单。 - Owl
5个回答

29

我认为它并不是“勉强可用”的。当VS找不到源代码时,它默认给你反汇编,并且很容易进入内存视图。调试->窗口->内存。在地址框中键入“this”即可获取当前对象的内存。要查看特定成员,请输入'&this->member_name',它会跳转到第一个字节。


多好啊,当你真正需要内存时,它却在菜单中不显示,是不是很棒?是的,我已经启用了地址级别调试... - user1115652
这是在调试器下从C++项目运行程序时吗?如果没有意义,它就不会出现。 - Rob K

2

调试 | Windows | 内存 | Memory1-4。将要查看的内存块的地址放入地址中。这可能是你尝试用鼠标执行的最困难的菜单选项(你会看到...)。

在旧版本的 VS 中,如果您想查看变量的内容,您需要确定变量的地址,我通常使用观察窗口。

然而,在较新的版本中,您通常可以像在观察窗口中一样,只需输入变量的名称作为地址。


1

VS2005有一个“内存”选项卡,可以提供字节大小的内存信息。不过我不知道如何让它突出显示十六进制块,告诉你哪些变量是哪些。


1

调试 | Windows | 内存可让您查看任何您想要的内存区域(受进程/访问限制的限制)。这在VS2005中。其他版本可能有稍微不同的菜单结构。


在这里使用 VS 2008。谢谢。 - Zombies
这在2013年是一样的,所以我相信在2008年也是一样的。 - TankorSmash

0
我不知道它是否好用,但是快速谷歌搜索“debugger display memory as bitmap”找到了Bitmap Memory Debugger,它被设计用于与另一个调试器(如Visual Studio或WinDbg)一起使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接