哪一行称为功能?

时间:2015-03-12 01:07:34

标签: powershell

我有一个用于调试的功能,在100个地方调用。有时候我不知道它的来源是什么,所以我必须发送它"要求890行" ...但是如果我改变我的脚本是错误的。

那么有没有办法让函数打印出来自哪个行?

例如:

   1: function debug($obj){$obj | %{$_.PSObject.Properties...}
...
 890: debug $param

我需要'调试'打印出哪个行/功能/块称为它,在本例中为890行。

谢谢:)

1 个答案:

答案 0 :(得分:1)

如果没有调试器,您可以使用调用堆栈来确定哪个函数称为代码:

function foo {
    'Caller {0}' -f (Get-PSCallStack)[1].Command
}

function bar {
    foo
}

foo
bar

输出

Caller <ScriptBlock>
Caller bar