如何在Visual Studio中同时查看递归函数各次调用的变量值
Visual Studio 查看递归函数各层调用变量的方法
每一层递归调用都会在调试器的调用栈中生成独立的栈帧,对应各层的局部变量存储,你可以通过切换栈帧查看对应层的变量,具体操作如下:
- 调试触发递归函数内的断点后,打开「调用栈」窗口:如果默认调试面板没有显示,可通过顶部菜单栏
调试→窗口→调用栈手动调出。 - 调用栈列表会按调用顺序排列所有未执行完成的栈帧,最顶部是当前正在执行的最新一层递归,越往下递归调用的层数越早,每一行栈帧都会标注对应的函数名、参数值、代码行数信息。
- 双击任意一行栈帧,即可将调试上下文切换到对应层的递归调用,此时Locals窗口会自动刷新为该层的所有局部变量值,已添加的通用监视项也会同步更新为当前选中栈帧的对应数值。
- 如果需要同时在Watch窗口对比多层递归的变量,可右键点击目标栈帧,选择「添加监视」,即可将该栈帧下的变量固定到监视列表,不会随当前调试上下文的切换而变化。
小技巧:递归层数较多时,可在调用栈窗口右键取消勾选「显示外部代码」,过滤掉系统底层调用的栈帧,仅保留你编写的递归函数调用记录,提升查找效率。
内容的提问来源于stack exchange,提问作者MFerguson
相关产品推荐
相关产品推荐

