title: powershell pass system.object[] without unrolling
body: <p>any ideas on how I can pass the Get-PSCallStack with out having it unroll. It appears to be a system.object[] but from what i have read online they don't remain intact when passed and " unroll ". I tried placing a comma in front to prevent it but that did not work.</p>
  
  <pre><code>function Pass-Callstack ([System.Object]$arg0) {
  Write-Host 'Start Pass-Callstack'
  $psCallStack = $arg0
  $psCallStackType = $psCallStack.GetType()
  $psCallStackLength = $psCallStack.Length
  $psCallStackCommand0 = $psCallStack[0].command 
  $psCallStackCommand1 = $psCallStack[1].command
  Write-Host $psCallStackType
  Write-Host $psCallStackLength
  Write-Host $psCallStackCommand0
  Write-Host $psCallStackCommand1
  $arg0 | gm
  }
  
  function Describe-Callstack {
  Write-Host 'Start Describe-Callstack'
  $psCallStack = (Get-PSCallStack)
  $psCallStackType = $psCallStack.GetType()
  $psCallStackLength = $psCallStack.Length
  $psCallStackCommand0 = $psCallStack[0].command 
  $psCallStackCommand1 = $psCallStack[1].command
  Write-Host $psCallStackType
  Write-Host $psCallStackLength
  Write-Host $psCallStackCommand0
  Write-Host $psCallStackCommand1
  $psCallStack | gm
  }
  Describe-Callstack
  Pass-Callstack (,$psCallStack)
  </code></pre>