gpt4 book ai didi

c++ - 在 VS2017 中搜索内存

转载 作者:行者123 更新时间:2023-12-02 10:38:29 29 4
gpt4 key购买 nike

我在 Visual Studio 2017 中打开了我的 C++ 应用程序的 minidump 文件。转储文件是程序因访问冲突而崩溃。我怀疑堆/堆栈损坏,所以我在内存/反汇编窗口中花费了大量时间,试图解释堆栈。

如果我可以在内存中搜索某个值(例如函数调用的返回地址),那将非常方便。我知道 WinDbg 可以做到,但它目前没有正确设置符号路径,我宁愿留在一个调试器中。

我找到了 this link表示 Visual Studio 2010 支持键入类似 .S -D 0x20B4EC L100 0x12EC9275 的内容在即时窗口中,但是当我在 VS2017 中尝试时,我只得到 expected an expression .

我错过了什么吗?

(注意,虽然我现在正在分析故障转储,但在调试实时程序时它似乎也不起作用)

澄清

  • 我有一个包含内存的小型转储
  • 常规分析工作正常:我有 pdb 文件,我可以看到线程、堆栈、 watch ,随你怎么说。只是我怀疑stack corruption ,所以那些没有多大意义。 (要么,要么优化器惹我)
  • 因此,我打开了内存窗口(单击 Debug->Windows->Memory->Memory 1)。在那里,我可以看到(原始)内存。现在,我想在该内存中搜索特定值。
  • 最佳答案

    这是一个很好的教程:
    https://docs.microsoft.com/en-us/visualstudio/debugger/using-dump-files?view=vs-2019

    基本上,查看转储中的内存有一些硬性要求:

  • minidump 必须与堆
  • 您必须为 Visual Studio 提供 .exe 及其 .pdb

  • 如果不满足这些要求,您将仅获得堆栈跟踪,也许还有一些堆栈变量。

    编辑:带有监视和变量的堆栈跟踪与您要搜索的内存相同。没有实时调试。这是崩溃的快照。

    关于c++ - 在 VS2017 中搜索内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691123/

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