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

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

【问题讨论】:

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

标签: c++ visual-studio debugging


【解决方案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)一起使用。

      【讨论】:

        猜你喜欢
        • 2011-03-22
        • 1970-01-01
        • 2016-10-19
        • 1970-01-01
        • 1970-01-01
        • 2013-05-21
        • 2016-07-24
        相关资源
        最近更新 更多