【问题标题】:How to view the current stack size of a windows thread when it overflows溢出时如何查看Windows线程的当前堆栈大小
【发布时间】:2013-02-07 00:03:51
【问题描述】:

我有一个进程在从 IIS 进程中运行时溢出堆栈,但在单独运行时工作正常。我怀疑它本身会获得默认的 1MB 堆栈,但在 IIS 中会少一些。

为了避免弄乱 IIS 工作进程,我在 IIS 进程中使用了一个子线程来分配更大的堆栈,但我怀疑根据文档 (http://msdn.microsoft.com/en-us/library/ms149581.aspx),线程创建的堆栈大小参数被忽略了

当堆栈溢出时,我可以在调试器中查看暂停的进程,但我如何知道实际分配的堆栈有多大?

【问题讨论】:

    标签: windows multithreading iis stack


    【解决方案1】:

    答案如下。

    在调试器中,在伪寄存器 TIB (http://msdn.microsoft.com/en-us/library/aa232399(v=vs.60).aspx) 上添加一个监视

    现在取这个值并在内存窗口中显示那个地址。从第二个 4 字节字中减去第三个 4 字节字,记住使用小端字节序。 http://en.wikipedia.org/wiki/Win32_Thread_Information_Block

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 2018-09-10
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2012-01-12
      • 2020-03-03
      • 2012-02-20
      • 1970-01-01
      相关资源
      最近更新 更多