mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Guarding Diagonstics to fix powershell debugging on Linux
This commit is contained in:
committed by
Andrew Schwartzmeyer
parent
72cd28c336
commit
f483429d11
@@ -38,33 +38,14 @@ function NewProcessStartInfo([string]$CommandLine, [switch]$RedirectStdIn)
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
|
||||
|
||||
foreach ($i in 1..2) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("foo`n")
|
||||
|
||||
foreach ($i in 1..13) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
foreach ($i in 1..3) {
|
||||
$process.StandardOutput.ReadLine() }
|
||||
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
foreach ($i in 1..3) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
foreach ($i in 1..3) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Close()
|
||||
|
||||
EnsureChildHasExited $process
|
||||
@@ -76,16 +57,8 @@ function NewProcessStartInfo([string]$CommandLine, [switch]$RedirectStdIn)
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
|
||||
|
||||
foreach ($i in 1..2) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("foo`n")
|
||||
|
||||
foreach ($i in 1..13) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("c`n")
|
||||
$process.StandardOutput.ReadLine()
|
||||
$process.StandardOutput.ReadLine()
|
||||
@@ -101,47 +74,111 @@ function NewProcessStartInfo([string]$CommandLine, [switch]$RedirectStdIn)
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
|
||||
|
||||
foreach ($i in 1..2) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("foo`n")
|
||||
|
||||
foreach ($i in 1..13) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
$process.StandardInput.Write("h`n")
|
||||
foreach ($i in 1..23) {
|
||||
|
||||
foreach ($i in 1..38) {
|
||||
$line = $process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
foreach ($i in 1..3) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
foreach ($i in 1..3) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("s`n")
|
||||
|
||||
foreach ($i in 1..3) {
|
||||
$process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Close()
|
||||
|
||||
EnsureChildHasExited $process
|
||||
$line | Should Be "For instructions about how to customize your debugger prompt, type `"help about_prompt`"."
|
||||
# $process.ExitCode | Should Be 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
It "Should be able to step over debugging"{
|
||||
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
|
||||
|
||||
$process.StandardInput.Write("foo`n")
|
||||
$process.StandardInput.Write("v`n")
|
||||
$process.StandardInput.Write("v`n")
|
||||
$process.StandardInput.Write("v`n")
|
||||
|
||||
$process.StandardInput.Close()
|
||||
|
||||
EnsureChildHasExited $process
|
||||
$process.ExitCode | Should Be 0
|
||||
}
|
||||
|
||||
|
||||
It "Should be able to step out of debugging"{
|
||||
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
|
||||
|
||||
$process.StandardInput.Write("foo`n")
|
||||
$process.StandardInput.Write("o`n")
|
||||
|
||||
$process.StandardInput.Close()
|
||||
|
||||
EnsureChildHasExited $process
|
||||
$process.ExitCode | Should Be 0
|
||||
}
|
||||
|
||||
It "Should be able to quit debugging"{
|
||||
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n")
|
||||
|
||||
$process.StandardInput.Write("foo`n")
|
||||
$process.StandardInput.Write("q`n")
|
||||
|
||||
$process.StandardInput.Close()
|
||||
|
||||
EnsureChildHasExited $process
|
||||
$process.ExitCode | Should Be 0
|
||||
}
|
||||
|
||||
It "Should be able to list source code in debugging"{
|
||||
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") | Write-Host
|
||||
|
||||
$process.StandardInput.Write("foo`n") | Write-Host
|
||||
$process.StandardInput.Write("l`n") | Write-Host
|
||||
|
||||
foreach ($i in 1..19) {
|
||||
$line = $process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$process.StandardInput.Write("`n")
|
||||
$process.StandardInput.Write("`n")
|
||||
$process.StandardInput.Write("`n")
|
||||
|
||||
$line | Should Be " 1:* `$function:foo = { 'bar' }"
|
||||
$process.StandardInput.Close()
|
||||
EnsureChildHasExited $process
|
||||
|
||||
}
|
||||
|
||||
|
||||
It "Should be able to get the call stack in debugging"{
|
||||
$debugfn = NewProcessStartInfo "-noprofile ""`$function:foo = { 'bar' }""" -RedirectStdIn
|
||||
$process = RunPowerShell $debugfn
|
||||
$process.StandardInput.Write("Set-PsBreakpoint -command foo`n") | Write-Host
|
||||
|
||||
$process.StandardInput.Write("foo`n") | Write-Host
|
||||
$process.StandardInput.Write("k`n") | Write-Host
|
||||
|
||||
foreach ($i in 1..20) {
|
||||
$line = $process.StandardOutput.ReadLine()
|
||||
}
|
||||
|
||||
$line | Should Be "foo {} <No file>"
|
||||
$process.StandardInput.Close()
|
||||
EnsureChildHasExited $process
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user