Visual studio Visual Studio中调用堆栈窗口的用途是什么?

Visual studio Visual Studio中调用堆栈窗口的用途是什么?,visual-studio,debugging,Visual Studio,Debugging,Visual Studio中调用堆栈窗口的用途是什么?当代码中断时(即引发异常时),堆栈跟踪窗口将显示在引发异常的方法之前调用的所有方法,包括每个方法的参数和这些参数的状态。这使得调试更容易,特别是在更复杂的调用图中(即,当您无法通过查看代码来确定谁调用了其他方法/属性/函数时) 只要尝试一下,在代码中的某个地方放置一个断点(F9),运行代码,等待断点被命中,然后打开堆栈窗口。您将看到当前线路的所有呼叫。您可以双击stack trace窗口中的每个条目,光标将向右跳转 如果您想知道:灰线是没有加

Visual Studio中调用堆栈窗口的用途是什么?

当代码中断时(即引发异常时),堆栈跟踪窗口将显示在引发异常的方法之前调用的所有方法,包括每个方法的参数和这些参数的状态。这使得调试更容易,特别是在更复杂的调用图中(即,当您无法通过查看代码来确定谁调用了其他方法/属性/函数时)

只要尝试一下,在代码中的某个地方放置一个断点(F9),运行代码,等待断点被命中,然后打开堆栈窗口。您将看到当前线路的所有呼叫。您可以双击stack trace窗口中的每个条目,光标将向右跳转


如果您想知道:灰线是没有加载源代码或符号的方法调用。您可以在这些行上单击鼠标右键,然后选择“加载符号”以加载符号。

调用堆栈中的目的是让您准确地看到是什么调用导致了问题的发生

在异常中查看堆栈跟踪时,可以看到导致错误发生的原始调用


在VisualStudio中调试时,可以在调用堆栈上下导航,以查看应用程序在不同级别存储的值。在调试应用程序如何达到其所处状态时,它很有用。

调用堆栈窗口的目的是为您提供访问当前指令的完整代码路径的权限。您可以使用它导航到程序中以前的函数调用,检查局部变量、参数等。。。它是一个非常宝贵的工具,用于确定代码为什么要做它正在做的事情

每次调用方法时,该线程的“堆栈”上都会有一个条目,描述该方法以及用于调用该方法的参数。当该方法返回时,该方法及其参数将从堆栈中删除。这就是操作环境如何知道在方法完成时返回到哪里。它只是从堆栈中删除顶部条目,清除在堆栈帧期间创建的所有局部变量,然后返回到上一个方法。(这过于简化了,但大体上是想法。)

您可以将其字面上理解为将您带到这里的指令的“堆栈”

这就是它对操作环境的意义

对于开发人员来说,实际目的是帮助您理解为什么您的程序处于它所处的状态。每当程序在调试器中停止执行时,无论是通过断点还是通过抛出异常(取决于Visual Studio设置),您都可以访问当前堆栈。请记住,此堆栈并不显示到目前为止已调用的所有方法。已从堆栈中删除任何已完成的方法。这不是日志


您可以双击堆栈中的任何条目以转到该源代码(如果您的计算机上有)。当你在那里的时候,你可以检查局部变量等。这是一种检测工具,可以帮助你找出你的程序到目前为止发生了什么。

我想投一票结束。我投票结束这个问题,因为它甚至不应该是一个问题。