Scripting. Powershell, VMware, Windows, Active Directory & Exchange. All that kind of stuff…..
RSS icon Email icon Home icon
  • PowerShell 2.0: One Cmdlet at a Time #59 Set-PSBreakpoint

    Posted on February 9th, 2010 Jonathan Medd No comments

    Continuing the series looking at new cmdlets available in PowerShell 2.0. This time we look at the Set-PSBreakPoint cmdlet.

    What can I do with it?

    Carry out debugging by setting a breakpoint based on a condition such as line number, command or variable.

    Examples:

    Set a breakpoint at line 3 in the script C:\Bowling.ps1 (This is an example script taken from the 2008 Scripting Games. During the execution of the script the variable $iPoints is frequently incremented to a new value)  Then run the script to utilise the breakpoint.

    Set-PSBreakpoint -Script Bowling.ps1 -Line 3

    You receive confirmation of the breakpoint set:

    Set-PSBreakpoint1

    Now when you run the script, you are informed at what point we have stopped at and the current value of $iPoints. Typing Exit will leave the debugging mode.

    Set-PSBreakpoint2

    For the next example set a breakpoint based on the variable $iPoints and carry out an action to save the value of $iPoints at that point in time into the file C:\log.txt.

    Set-PSBreakpoint -Script .\Bowling.ps1 -Variable iPoints
    -Action {Out-File log.txt -Append -Inputobject $iPoints}

    This time the confirmation shows both a Variable and an Action have been set as part of the Breakpoint.

    Set-PSBreakpoint3

    Running the script does not bring up the interactive debugger this time.

    Set-PSBreakpoint4

    However, the log.txt file is created and its contents show the value of $iPoints each time it is referenced in the script.

    Set-PSBreakpoint5

    How could I have done this in PowerShell 1.0?

    Setting breakpoints did not exist in PowerShell 1.0, however most scripting IDE’s ship with debugging features.

    1000 things 1% better!

    Leave a reply