Share via


Disable-PSBreakpoint

Disables the breakpoints in the current console.

Syntax

Disable-PSBreakpoint
       [-PassThru]
       [-Breakpoint] <Breakpoint[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Disable-PSBreakpoint
       [-PassThru]
       [-Id] <Int32[]>
       [-Runspace <Runspace>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

The Disable-PSBreakpoint cmdlet disables breakpoints, which assures that they are not hit when the script runs. You can use it to disable all breakpoints, or you can specify breakpoints by submitting breakpoint objects or breakpoint IDs.

Technically, this cmdlet changes the value of the Enabled property of a breakpoint object to False. To re-enable a breakpoint, use the Enable-PSBreakpoint cmdlet. Breakpoints are enabled by default when you create them using the Set-PSBreakpoint cmdlet.

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

Examples

Example 1: Set a breakpoint and disable it

These commands disable a newly-created breakpoint.

$B = Set-PSBreakpoint -Script "sample.ps1" -Variable "name"
$B | Disable-PSBreakpoint

The Set-PSBreakpoint cmdlet creates a breakpoint on the $Name variable in the Sample.ps1 script and saves the breakpoint object in the $B variable. The Disable-PSBreakpoint cmdlet disables the new breakpoint. It uses a pipeline operator (|) to send the breakpoint object in $B to the Disable-PSBreakpoint cmdlet.

As a result of this command, the value of the Enabled property of the breakpoint object in $B is False.

Example 2: Disable a breakpoint

This command disables the breakpoint with breakpoint ID 0.

Disable-PSBreakpoint -Id 0

Example 3: Create a disabled breakpoint

This command creates a new breakpoint that is disabled until you enable it.

Disable-PSBreakpoint -Breakpoint ($B = Set-PSBreakpoint -Script "sample.ps1" -Line 5)

It uses the Disable-PSBreakpoint cmdlet to disable the breakpoint. The value of the Breakpoint parameter is a Set-PSBreakpoint command that sets a new breakpoint, generates a breakpoint object, and saves the object in the $B variable.

Cmdlet parameters that take objects as their values can accept a variable that contains the object or a command that gets or generates the object. In this case, because Set-PSBreakpoint generates a breakpoint object, it can be used as the value of the Breakpoint parameter.

Example 4: Disable all breakpoints in the current console

This command disables all breakpoints in the current console.

`Get-PSBreakpoint` | Disable-PSBreakpoint

Example 5: Disable a breakpoint in a 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. The output of Get-PSBreakPoint is piped to Disable-PSBreakpoint to disable the breakpoint in the runspace.

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

$runspace = Get-Runspace -Id 1

Get-PSBreakPoint -Runspace $runspace | Disable-Breakpoint -Runspace $runspace

Parameters

-Breakpoint

Specifies the breakpoints to disable. Enter a variable that contains breakpoint objects or a command that gets breakpoint objects, such as a Get-PSBreakpoint command. You can also pipe breakpoint objects to the Disable-PSBreakpoint cmdlet.

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

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Disables the breakpoints with the specified breakpoint IDs. Enter the IDs or a variable that contains the IDs. You cannot pipe IDs to Disable-PSBreakpoint.

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

-PassThru

Returns an object representing the enabled breakpoints. By default, this cmdlet does not generate any output.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
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
Aliases:RunspaceId
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Breakpoint

You can pipe a breakpoint object to this cmdlet.

Outputs

None

By default, this cmdlet returns no output.

Breakpoint

When you use the PassThru parameter, this cmdlet returns a breakpoint object representing the disabled breakpoint.

Notes

PowerShell includes the following aliases for Disable-PSBreakpoint:

  • All platforms:
    • dbp