【问题标题】:Getting the function table from a x64 process从 x64 进程获取函数表
【发布时间】:2012-03-10 21:43:12
【问题描述】:

我想遍历 x64 进程的堆栈。
我读到为了这样做,我需要获取存储在 exe 或 DLL 中的展开信息。
我已经看到有一个RtlAddFunctionTable,但我首先可以找到任何方法来获取这个函数表......
我该怎么做?

【问题讨论】:

    标签: c++ windows 64-bit stack-trace


    【解决方案1】:

    你见过StackWalk64吗?

    【讨论】:

      【解决方案2】:

      您还可以使用 64 位版本的 WinDbg,它作为 DDK/SDK http://msdn.microsoft.com/en-us/windows/hardware/gg463009 的一部分提供。

      附加后,您可以加载 windows 符号:

      .symfix;.reload;
      

      您也可以将它指向您的应用程序 pdb,只要您的 pdb 没有从发布版本中删除私有符号,您就应该能够看到完整的调用堆栈。

      【讨论】:

        【解决方案3】:

        您可以使用 RtlLookupFunctionEntry (https://docs.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-rtllookupfunctionentry) 获取与特定代码地址关联的函数表条目 (struct RUNTIME_FUNCTION)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-30
          • 2015-07-27
          • 1970-01-01
          相关资源
          最近更新 更多