标签: c++ windows callstack
有没有办法在C ++中获取调用堆栈的大小(以字节为单位)? 或者至少它的底部地址(然后我可以从ESP寄存器中减去它?
答案 0 :(得分:2)
StackWalk64()
http://msdn.microsoft.com/en-us/library/ms680650
答案 1 :(得分:1)
您可以尝试两次使用VirtualQuery。
第一次可以使用堆栈上任何值的地址来获取提交的堆栈空间的基址和大小(以字节为单位)。
从基地址中减去大小,然后再次调用VirtualQuery。这样就可以获得为堆栈保留的空间。
添加两种尺寸,即可获得总堆叠尺寸。