You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DebuggerStop事件处理程序中获取当前模块?

脚本形式PowerShell调试器的模块作用域问题

我正在开发一个以脚本形式实现的PowerShell调试器(Add-Debugger.ps1),它有特定适用场景,目前除了在脚本模块断点处停止时的部分功能外,其余均正常运行。

调试器的核心功能之一是执行用户交互式输入的命令并显示结果,但当前存在问题:这些命令并未在当前脚本模块的作用域中执行,而是在其他无关作用域运行。

如果能获取到当前模块对象(例如$module),就可以通过$module.Invoke()方法在模块作用域中调用命令,从而解决该问题,但我不清楚如何获取这个$module对象。

注意:尝试过使用Get-Variable -Scope 1获取$ExecutionContext.SessionState.Module,但没有效果。原因是$ExecutionContext属于DebuggerStop处理程序的上下文,而非模块的父级上下文;并且Get-Variable本身也是在非模块作用域中调用的,无法获取模块内部的变量。

内容的提问来源于stack exchange,提问作者Roman Kuzmin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:09:36