我有一个用于调试的函数,它在 100 多个地方被调用。有时我不知道它是从哪里调用的,所以我必须发送它"调用 890 行"......但是如果我更改脚本,那就错了。
那么有没有办法让一个函数打印出它从哪一行被调用?
例如:
1: function debug($obj){$obj | %{$_.PSObject.Properties...}
...
890: debug $param
我需要"调试"来打印出哪个行/功能/块调用它,在本例中为 890 行。
谢谢:)
如果没有调试器,则可以使用调用堆栈来确定调用代码的函数:
function foo {
'Caller {0}' -f (Get-PSCallStack)[1].Command
}
function bar {
foo
}
foo
bar
输出
Caller <ScriptBlock>
Caller bar