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

Posted

技术标签:

【中文标题】Visual Studio C++ 调试器:没有十六进制转储?【英文标题】:Visual Studio C++ Debugger: No hex dump? 【发布时间】:2009-02-06 18:22:11 【问题描述】:

为什么集成的 vs 调试器如此...几乎没有功能?我看不到内存中对象的内容。例如,我正在使用位图,我想在内存中看到它们。我需要一个更好的调试器吗?如果是这样,我对建议感兴趣。没有什么比反汇编器更强大了,只有调试器。

【问题讨论】:

我花了 3 个小时寻找有关如何在 windbg 和 Visual Studio 中读取局部变量的基本信息。我找不到任何有用的东西。我找不到任何可靠的信息来源。它没有 GDB 好,您可以查看所有内容,并且文档非常清晰和简单。 【参考方案1】:

我从来没有发现它“几乎没有功能”。 VS 在找不到源时默认为您提供反汇编,并且很容易进入内存视图。调试-> 窗口-> 内存。在地址:框中键入“this”以获取当前对象的内存。查看特定成员类型“&this->member_name”。它会直接跳到第一个字节。

【讨论】:

当内存没有出现在那个菜单中,当你真正需要它的时候,是的,我已经打开了启用地址级别调试…… 这是在调试器下从它的项目运行 C++ 程序时吗?它不会在没有意义的情况下出现。【参考方案2】:

调试 |窗户 |记忆 |记忆1-4。将要查看的内存块的地址放在地址中。这可能是您尝试用鼠标执行的最困难的菜单选项(您会看到...)。

在老版本的VS中,如果要查看变量的内容,需要确定变量的地址,我一般使用watch window。

但是,在较新的版本中,您通常只需输入变量的名称作为地址,就像在监视窗口中一样。

【讨论】:

【参考方案3】:

VS2005 有一个“内存”选项卡,可以提供内存字节。我不知道如何说服它突出显示十六进制块,以便您告诉您哪些变量是哪些变量。

【讨论】:

【参考方案4】:

调试 |窗户 |内存可让您查看所需的任何内存区域(受进程/访问限制)。这是在VS2005中。其他版本的菜单结构可能略有不同。

【讨论】:

在这里使用 vs 2008。不过还是谢谢。 2013年也一样,2008年肯定也一样【参考方案5】:

我不知道这是否有任何好处,但在 Google 上快速搜索“调试器显示内存为位图”出现了 Bitmap Memory Debugger,它旨在与其他调试器(例如 Visual Studio 或 WinDbg)一起使用。

【讨论】:

以上是关于Visual Studio C++ 调试器:没有十六进制转储?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 怎么编译,怎么调试?

如何在 Visual Studio (C++) 中设置发布分析

2.5 visual studio调试nodeos

Visual Studio 2008 C++ 误报内存地址位置

为啥在同一个 Visual Studio 解决方案中生成 C++ 调试符号不匹配?

可以从命令行运行 C++ 代码,但不能从 Visual Studio 中的调试模式运行