【问题标题】:How to get the size of all local variables, when not using a naked function不使用裸函数时如何获取所有局部变量的大小
【发布时间】:2012-04-26 15:28:20
【问题描述】:

如何在非裸函数中获取所有局部变量的大小(我的堆栈在序言中移动了多少)?

在裸函数中,我可以使用 __LOCAL_SIZE 符号。

【问题讨论】:

  • 你为什么需要知道这个?
  • 所以我可以检查函数链中前面提供的参数。
  • 有什么用?您是否正在尝试获取堆栈跟踪? C++ 不是这种反射的语言。
  • 是的,我正在回溯堆栈,我用一个小的 prolog inline asm "hack" 来管理它。

标签: c++ visual-studio-2010 function assembly


【解决方案1】:

您可以使用StackWalk64 in dbghelp.dll 进行全栈遍历。 EBP 和 ESP 是描述每个堆栈帧的结构的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2014-09-14
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多