回答的同时 我注意到在处理异常时尝试移动“光标”时出现以下对话框:

无法将下一条语句设置到此位置。尝试展开调用堆栈失败。

在以下情况下无法展开:

  1. 调试是通过即时调试启动的。
  2. 放松正在进行中
  3. 已引发 System.StackOverflowException 或 System.Threading.ThreadAbortException 异常。

到底什么是 放松?

有帮助吗?

解决方案

这就是我!

不,在这种情况下,它通常指的是在堆栈中逐步(“向后”/“向上”)的过程,删除连续的帧,直到回到所需的级别。典型的堆栈(当然)在结构上非常线性,帧是端到端堆叠的,因此实际上并没有太多字面展开,但这就是它的名称。

这个维基百科页面 有更多细节。

其他提示

展开只是将堆栈移回到堆栈上。

CLR 在此处“展开”堆栈,以便找到带有可以处理异常的 catch 块的方法,即如果当前方法不处理异常,则返回到调用它的方法以查看是否会处理异常。重复此过程,直到找到处理异常的方法或达到应用程序级别错误处理。

这意味着存在错误线程,或者可能是因为堆栈已满并且未创建堆栈帧,CLR 在这种情况下选择 UNWIND 当前上下文。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top