Sure ! Do this, it's the same code I use in all my script: It will Output a callstack like this
```
function Show-ExceptionDetails{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true)]
[System.Management.Automation.ErrorRecord]$Record,
[Parameter(Mandatory=$false)]
[switch]$ShowStack
)
$formatstring = "{0}`n{1}"
$fields = $Record.FullyQualifiedErrorId,$Record.Exception.ToString()
$ExceptMsg=($formatstring -f $fields)
$Stack=$Record.ScriptStackTrace
Write-Host "`n[ERROR] -> " -NoNewLine -ForegroundColor DarkRed;
Write-Host "$ExceptMsg`n`n" -ForegroundColor DarkYellow
if($ShowStack){
Write-Host "--stack begin--" -ForegroundColor DarkGreen
Write-Host "$Stack" -ForegroundColor Gray
Write-Host "--stack end--`n" -ForegroundColor DarkGreen
}
}
```
Then use like this: ``` function Get-Stuff { [CmdletBinding()] param()
try{
// do stuff
}
catch{
Show-ExceptionDetails $_ -ShowStack
}
}
```