Set-PSBreakpoint

Define um ponto de interrupção em uma linha, comando ou variável.

Sintaxe

Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [-Action <scriptblock>] [<CommonParameters>]

Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {<Read> | <Write> | <ReadWrite>}] [-Action <scriptblock>] [<CommonParameters>]

Descrição

O cmdlet Set-PSBreakpoint define um ponto de interrupção em um script ou em qualquer comando executado na sessão atual. É possível usar Set-PSBreakpoint para definir um ponto de interrupção antes de executar um script ou um comando, ou durante a depuração, quando interrompido em outro ponto de interrupção.

Observação: Set-PSBreakpoint não pode definir um ponto de interrupção em um computador remoto. Para depurar um script em um computador remoto, copie o script para o computador local e depure-o localmente.

Cada comando Set-PSBreakpoint cria um dos seguintes três tipos de pontos de interrupção:

--Ponto de interrupção de linha: define pontos de interrupção em uma linha específica e em coordenadas de coluna.

--Ponto de interrupção de comando: define pontos de interrupção em comandos e funções.

--Ponto de interrupção variável: define pontos de interrupção em variáveis.

É possível definir um ponto de interrupção em várias linhas, comandos ou variáveis em um único comando Set-PSBreakpoint, mas cada comando Set-PSBreakpoint define apenas um tipo de ponto de interrupção.

Em um ponto de interrupção, o Windows PowerShell para temporariamente de executar e passa o controle para o depurador. O prompt de comando é alterado para "DBG>" e um conjunto de comandos de depurador se torna disponível para uso. No entanto, é possível usar o parâmetro Action para especificar uma resposta alternativa, como condições do ponto de interrupção ou instruções para executar tarefas adicionais, como registrar em log ou diagnóstico.

O cmdlet Set-PSBreakpoint é um dos vários cmdlets desenvolvidos par depurar scripts do Windows PowerShell. Para obter mais informações sobre o depurador do Windows PowerShell, consulte about_Debuggers.

Parâmetros

-Action <scriptblock>

Especifica comandos que são executados em cada ponto de interrupção, em vez de interromper. Insira um bloco de scripts que contenha os comandos. É possível usar esse parâmetro para definir pontos de interrupção condicionais ou para executar outras tarefas, como testar ou registrar em log.

Se esse parâmetro for omitido ou se nenhuma ação for especificada, a execução será interrompida no ponto de interrupção e o depurador será iniciado.

Quando o parâmetro Action é usado, o bloco de scripts de Action é executado em cada ponto de interrupção. A execução não será interrompida a menos que o bloco de scripts inclua a palavra-chave Break. Se você usar a palavra-chave Continue no bloco de scripts, a execução continuará até o próximo ponto de interrupção.

Para obter mais informações, consulte about_Script_Blocks, about_Break e about_Continue.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Column <int>

Especifica o número da coluna do arquivo de script na qual a execução é interrompida. Digite só um número de coluna. O padrão é coluna 1.

O valor de Column é usado com o valor do parâmetro Line para especificar o ponto de interrupção. Se o parâmetro Line especificar várias linhas, o parâmetro Column definirá um ponto de interrupção na coluna especificada em cada uma das linhas especificadas. O Windows PowerShell para de executar antes da instrução ou expressão que inclui o caractere na linha especificada e na posição da coluna.

As colunas são contadas da margem superior esquerda que começa com a coluna número 1 (não 0). Se você especificar uma coluna que não existe no script, não será declarado um erro, mas o ponto de interrupção nunca será executado.

Necessário?

false

Posição?

3

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Command <string[]>

Define um ponto de interrupção de comando. Digite nomes de comando, como "Get-Process" ou nomes de função. Os caracteres curinga são permitidos.

A execução é interrompida imediatamente antes de cada instância de cada comando ser executada. Se o comando for uma função, a execução será interrompida a cada vez que a função for chamada e em cada seção BEGIN, PROCESS e END.

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

true

-Line <Int32[]>

Define um ponto de interrupção de linha em um script. Insira um ou mais números de linhas separados por vírgulas. O Windows PowerShell para imediatamente antes de executar a instrução que começa em cada uma das linhas especificadas.

As linhas são contadas da margem superior esquerda do arquivo de script que começa com a linha número 1 (não 0). Se você especificar uma linha em branco, a execução será interrompida antes da próxima linha que não está em branco. Se a linha estiver fora do intervalo, o ponto de interrupção nunca será atingido.

Necessário?

true

Posição?

2

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Mode <VariableAccessMode>

Determina o modo de acesso que dispara pontos de interrupção variáveis. O padrão é Write.

Esse parâmetro só é válido quando o parâmetro Variable é usado no comando. O modo se aplica a todo o conjunto de pontos de interrupção no comando.

Os valores válidos são:

-- Write: interrompe a execução imediatamente antes de um novo valor ser gravado na variável.

-- Read: interrompe a execução quando a variável é lida, isto é, quando seu valor é acessado para ser atribuído, exibido ou usado. Em modo de leitura, a execução não é interrompida quando o valor das variáveis é alterado.

-- ReadWrite: interrompe a execução quando a variável é lida ou gravada.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Script <string[]>

Define um ponto de interrupção em cada arquivo de script especificado. Insira os caminhos e os nomes de um ou mais arquivos de script. Se os arquivos estiverem no diretório atual, o caminho poderá ser omitido. Os caracteres curinga são permitidos.

Por padrão, os pontos de interrupção variáveis e os pontos de interrupção de comando são definidos em qualquer comando executado na sessão atual. Esse parâmetro só é necessário ao definir um ponto de interrupção de linha.

Necessário?

false

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

true

-Variable <string[]>

Define um ponto de interrupção variável. Insira uma lista de variáveis separadas por vírgulas sem o cifrão ($).

Use o parâmetro Mode para determinar o modo de acesso que dispara is pontos de interrupção. O modo padrão, Write, interrompe a execução imediatamente antes de um novo valor ser gravado na variável.

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

Nenhum

Não é possível canalizar entrada para Set-PSBreakpoint.

Saídas

Objeto de ponto de interrupção (System.Management.Automation.LineBreakpoint, System.Management.Automation.VariableBreakpoint, System.Management.Automation.CommandBreakpoint)

Set-PSBreakpoint retorna um objeto que representa cada ponto de interrupção definido.

Observações

O Set-PSBreakpoint não pode definir um ponto de interrupção em um computador remoto. Para depurar um script em um computador remoto, copie o script para o computador local e depure-o localmente.

Quando você define um ponto de interrupção em mais de uma linha, comando ou variável, o Set-PSBreakpoint gera um objeto de ponto de interrupção para cada entrada.

Ao definir um ponto de interrupção em uma função ou variável no prompt de comando, você pode definir o ponto de interrupção antes ou depois de criar a função ou a variável.

Exemplo 1

C:\PS>set-psbreakpoint -script sample.ps1 -line 5

Column     : 0
Line       : 5
Action     :
Enabled    : True
HitCount   : 0
Id         : 0
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrição
-----------
Esse comando define um ponto de interrupção na linha 5 do script Sample.ps1. Como resultado, quando o script é executado, a execução é interrompida imediatamente antes da linha 5 ser executada.

Quando você define um novo ponto de interrupção por número de linha, o cmdlet Set-PSBreakpoint gera um objeto de ponto de interrupção de linha (System.Management.Automation.LineBreakpoint) que inclui a ID do ponto de interrupção e a contagem de ocorrências, conforme mostrado na saída do exemplo a seguir.





Exemplo 2

C:\PS>set-psbreakpoint -command Increment -script sample.ps1

Command    : Increment
Action     :
Enabled    : True
HitCount   : 0
Id         : 1
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrição
-----------
Esse comando cria um ponto de interrupção de comando na função Increment função do cmdlet Sample.ps1. O script interrompe a execução imediatamente antes de cada chamada para a função especificada.

O resultado é um objeto de ponto de interrupção de comando. Antes de o script ser executado, o valor da propriedade HitCount é 0.





Exemplo 3

C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite

Descrição
-----------
Esse comando define um ponto de interrupção na variável Server do script Sample.ps1. Ele usa o parâmetro Mode com um valor de ReadWrite para interromper a execução quando o valor da variável é lido e imediatamente antes do valor ser alterado.





Exemplo 4

C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*"

Descrição
-----------
Esse comando define um ponto de interrupção em cada comando no script Sample.ps1 que começa com "write", como "write-host".





Exemplo 5

C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest `
  -action { (if $disk -gt 2) { break } }

Descrição
-----------
Esse comando só interrompe execução na função DiskTest script Test.ps1 quando o valor da variável $disk é maior que 2.

Ele usa o cmdlet Set-PSBreakpoint para definir um ponto de interrupção de comando na função DiskTest. O valor da ação é um bloco de script que testa o valor da variável $disk na função.

A ação usará a palavra-chave BREAK para interromper a execução se a condição for atendida. A alternativa (e o padrão) é CONTINUE.





Exemplo 6

C:\PS>set-psbreakpoint -command checkpoint-computer

Id       : 0
Command  : checkpoint-computer
Enabled  : True
HitCount : 0
Action   :

C:\PS> function CheckLog {
>> get-eventlog -log Application | 
>> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")}
>>}
>>
C:\PS> Checklog
DEBUG: Hit breakpoint(s)
DEBUG:  Function breakpoint on 'prompt:Checklog'
C:\PS>>>

Descrição
-----------
Esse comando define um ponto de interrupção na função CheckLog. Como o comando não especifica um script, o ponto de interrupção é definido em qualquer coisa executada na sessão atual. O depurador é interrompido quando a função é chamada, não quando ela é declarada.





Exemplo 7

C:\PS>set-psbreakpoint -script sample.ps1 -line 1, 14, 19 -column 2 -action {&(log.ps1)}

Column     : 2
Line       : 1
Action     :
Enabled    : True
HitCount   : 0
Id         : 6
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 14
Action     :
Enabled    : True
HitCount   : 0
Id         : 7
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Column     : 2
Line       : 19
Action     :
Enabled    : True
HitCount   : 0
Id         : 8
Script     : C:\ps-test\sample.ps1
ScriptName : C:\ps-test\sample.ps1

Descrição
-----------
Esse comando define três pontos de interrupção de linha no script Sample.ps1. Ele define um ponto de interrupção na coluna 2 em cada uma das linhas especificadas no script. A ação especificada no parâmetro Action é aplicada a todos os pontos de interrupção.





Consulte também

Conceitos

about_Debuggers
Get-PSBreakpoint
Enable-PSBreakpoint
Disable-PSBreakpoint
Remove-PSBreakpoint
Get-PSCallStack