Share via


Get-PSBreakpoint

Gets the breakpoints that are set in the current session.

Syntax

Get-PSBreakpoint
   [[-Script] <String[]>]
   [-Runspace <Runspace>]
   [<CommonParameters>]
Get-PSBreakpoint
   [[-Script] <String[]>]
   -Command <String[]>
   [-Runspace <Runspace>]
   [<CommonParameters>]
Get-PSBreakpoint
   [[-Script] <String[]>]
   -Variable <String[]>
   [-Runspace <Runspace>]
   [<CommonParameters>]
Get-PSBreakpoint
   [[-Script] <String[]>]
   [-Type] <BreakpointType[]>
   [-Runspace <Runspace>]
   [<CommonParameters>]
Get-PSBreakpoint
   [-Id] <Int32[]>
   [-Runspace <Runspace>]
   [<CommonParameters>]

Description

The Get-PSBreakPoint cmdlet gets the breakpoints that are set in the current session. You can use the cmdlet parameters to get particular breakpoints.

A breakpoint is a point in a command or script where execution stops temporarily so that you can examine the instructions. Get-PSBreakpoint is one of several cmdlets designed for debugging PowerShell scripts and commands. For more information about the PowerShell debugger, see about_Debuggers.

Examples

Example 1: Get all breakpoints for all scripts and functions

This command gets all breakpoints set on all scripts and functions in the current session.

Get-PSBreakpoint

Example 2: Get breakpoints by ID

This command gets the breakpoint with breakpoint ID 2.

Get-PSBreakpoint -Id 2

Function         :
IncrementAction  :
Enabled          :
TrueHitCount     : 0
Id               : 2
Script           : C:\ps-test\sample.ps1
ScriptName       : C:\ps-test\sample.ps1

Example 3: Pipe an ID to `Get-PSBreakpoint`

These commands show how to get a breakpoint by piping a breakpoint ID to Get-PSBreakpoint.

$B = `Set-PSBreakpoint` -Script "sample.ps1" -Command "Increment"
$B.Id | Get-PSBreakpoint

The Set-PSBreakpoint cmdlet creates a breakpoint on the Increment function in the Sample.ps1 script and saves the breakpoint object in the $B variable. The Id property of the breakpoint object in the $B variable is piped to the Get-PSBreakpoint cmdlet to display the breakpoint information.

Example 4: Get breakpoints in specified script files

This command gets all of the breakpoints in the Sample.ps1 and SupportScript.ps1 files.

Get-PSBreakpoint -Script "Sample.ps1, SupportScript.ps1"

This command does not get other breakpoints that might be set in other scripts or on functions in the session.

Example 5: Get breakpoints in specified cmdlets

This command gets all Command breakpoints that are set on Read-Host or Write-Host commands in the Sample.ps1 file.

Get-PSBreakpoint -Command "Read-Host, Write-Host" -Script "Sample.ps1"

Example 6: Get Command breakpoints in a specified file

Get-PSBreakpoint -Type Command -Script "Sample.ps1"

This command gets all Command breakpoints in the Sample.ps1 file.

Example 7: Get breakpoints by variable

This command gets breakpoints that are set on the $Index and $Swap variables in the current session.

Get-PSBreakpoint -Variable "Index, Swap"

Example 8: Get all Line and Variable breakpoints in a file

This command gets all line and variable breakpoints in the Sample.ps1 script.

Get-PSBreakpoint -Type Line, Variable -Script "Sample.ps1"

Example 9: Get the breakpoints set in a specific runspace

In this example, a job is started and a breakpoint is set to break when the Set-PSBreakPoint is run. The runspace is stored in a variable and passed to the Get-PSBreakPoint command with the Runspace parameter. You can then inspect the breakpoint in the $breakpoint variable.

Start-Job -ScriptBlock {
    Set-PSBreakpoint -Command Start-Sleep
    Start-Sleep -Seconds 10
}

$runspace = Get-Runspace -Id 1

$breakpoint = Get-PSBreakPoint -Runspace $runspace

Parameters

-Command

Specifies an array of command breakpoints that are set on the specified command names. Enter the command names, such as the name of a cmdlet or function.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Id

Specifies the breakpoint IDs that this cmdlet gets. Enter the IDs in a comma-separated list. You can also pipe breakpoint IDs to Get-PSBreakpoint.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Runspace

Specifies the Id of a Runspace object so you can interact with breakpoints in the specified runspace.

This parameter was added in PowerShell 7.2.

Type:Runspace
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

Specifies an array of scripts that contain the breakpoints. Enter the path (optional) and names of one or more script files. If you omit the path, the default location is the current directory.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Type

Specifies an array of breakpoint types that this cmdlet gets. Enter one or more types. The acceptable values for this parameter are:

  • Line
  • Command
  • Variable

You can also pipe breakpoint types to Get-PSBreakPoint.

Type:BreakpointType[]
Accepted values:Line, Variable, Command
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Variable

Specifies an array of variable breakpoints that are set on the specified variable names. Enter the variable names without dollar signs.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Int32

You can pipe breakpoint IDs to this cmdlet.

BreakpointType

You can pipe breakpoint types to this cmdlet.

Outputs

CommandBreakpoint

LineBreakpoint

VariableBreakpoint

Breakpoint

This cmdlet returns objects that represent the breakpoints in the session.

Notes

PowerShell includes the following aliases for Get-PSBreakpoint:

  • All platforms:
    • gbp