Get-PSBreakpoint

Exploring Get-PSBreakpoint in PowerShell

Welcome back to Wahmans PowerShell blog! Today we are exploring the Get-PSBreakpoint cmdlet — an essential tool for anyone working with debugging in PowerShell.

According to Microsoft, Get-PSBreakpoint “gets the breakpoints that are set in the current session.” This means that whenever you’re using breakpoints to investigate or monitor the behavior of your scripts, this cmdlet lets you fetch all the breakpoints that have been set during your current PowerShell session.

Understanding Breakpoints

Before we dive into examples, here’s a quick reminder: breakpoints are used to pause script execution so you can inspect variables, run diagnostics, or examine script flow. They can be set on lines, commands, or even variable access.

Example 1: Basic Usage – Getting All Breakpoints

This is the most straightforward use of Get-PSBreakpoint.

Get-PSBreakpoint

This will return a list of all breakpoints currently set in your PowerShell session, including their type (line, command, or variable), the script file, and the line number.

Example 2: Setting and Retrieving a Line Breakpoint

# Set a simple line breakpoint
Set-PSBreakpoint -Script "C:\Scripts\Example.ps1" -Line 5

# Retrieve all breakpoints
Get-PSBreakpoint

After setting a breakpoint at line 5 in Example.ps1, running Get-PSBreakpoint will show that the breakpoint has been added, along with the script name and the line number.

Example 3: Filter by Breakpoint ID

# Set multiple breakpoints
$b1 = Set-PSBreakpoint -Script "C:\Scripts\Example.ps1" -Line 10
$b2 = Set-PSBreakpoint -Script "C:\Scripts\Example.ps1" -Line 20

# Get only one specific breakpoint
Get-PSBreakpoint -Id $b1.Id

Sometimes you might only care about a specific breakpoint. In this case, we use the -Id parameter to filter the result.

Example 4: Advanced Usage – List Variable Breakpoints

# Set a variable access breakpoint
Set-PSBreakpoint -Variable "MyVar"

# Get all current breakpoints
Get-PSBreakpoint

# You can pipe and filter to get only variable breakpoints
Get-PSBreakpoint | Where-Object { $_.BreakpointType -eq 'Variable' }

Variable breakpoints are powerful for tracking unexpected changes in state. This example monitors access or assignment to a variable named MyVar and filters the list to show only breakpoints of type Variable.

Wrap-Up

Get-PSBreakpoint is incredibly useful for managing and inspecting breakpoints while debugging your PowerShell scripts. Combined with Set-PSBreakpoint, Disable-PSBreakpoint, and Remove-PSBreakpoint, you’ve got a full toolbox for powerful debugging.

Happy scripting, and I will see you in the next post!

Leave a Reply

Your email address will not be published. Required fields are marked *