c++ - 做什么? XXX!yyyyyyyyyy+zzz 表示 !heap -flt s 输出

标签 c++ debugging windbg memory-dump

我正在分析一些用户模式内存转储以试图追踪泄漏,并且我有一些关于泄漏内容的候选者,但是当我运行 !heap -flt 时,我一直在我的转储中看到这些条目s xx 命令。

    14a8bd58 0006 0006  [07]   14a8bd60    00018 - (busy)
    14a8bd88 0006 0006  [07]   14a8bd90    00018 - (busy)
    14a8bdf8 0006 0006  [07]   14a8be00    00018 - (busy)
    14a8bf48 0006 0006  [07]   14a8bf50    00018 - (busy)
      ? SomeModule!SomeFunction+1bdf4

我明白了

    14a8bd58 0006 0006  [07]   14a8bd60    00018 - (busy)

线条是,但我不太确定线条是什么

      ? SomeModule!SomeFunction+1bdf4

真的很刻薄。这些转储是使用堆跟踪的 +ust 标志捕获的。

最佳答案

它们只是提供符号信息,以便读者更有用地定位源的相应部分。

在 Windows 下,进程的虚拟地址空间由一组模块填充。每个模块由一个基地址和一个大小组成。因此有时显示此信息的另一种方式是 Module + Relative Offset

模块可以包含函数。在符号表完好无损的情况下,可以找到这些函数的相对偏移量(进入模块)和大小。转储只是以更易于阅读的格式显示此信息。

关于c++ - 做什么? XXX!yyyyyyyyyy+zzz 表示 !heap -flt s 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282876/

相关文章:

c++ - QT 运行但 QImages 不显示在发布版本中

c - 为什么 PsGetCurrentProcessId() 返回 null?

c++ - 在 Windows 中禁用 LFH?

c++ - 如何在 Linux C++ 中使用 ***sprintf_s***

c++ - 如何将网格归一化为 -1 到 1,然后从归一化网格恢复为原始网格?

java - 在 Eclipse 中调试正在运行的 Java 应用程序?

debugging - Erlang "system"内存部分不断增长

WinDbg 找不到 microsoft 符号

c++ - QuantLib 1.5编译错误无法打开文件 'QuantLib-vc100-x64-mt.lib'

C++ 多线程 : how do I reuse threads for many "jobs"?