Comandos do ponto de controle do depurador

Define o ponto de controle do acesso da memória.
Apaga os pontos de controle.
Desativa os pontos de controle.
Ativa os pontos de controle.
Lista os pontos de controle.

Os pontos de controle [1] interrompe a execução do depurador quando uma CPU acessa um ponto numa determinada faixa da memória.

wpset

wp[{d|i|o}][set] <endereço>[:<faixa>],<comprimento>,<tipo>[,<condição>[,<ação>]]

Define um novo ponto de controle iniciando em determinado <endereço> que se estende através do parâmetro <comprimento>. Toda a faixa do ponto de controle é o <endereço> através do <endereço>+<comprimento>-1, inclusive. O <endereço> pode ser opcionalmente seguido pela faixa de endereços da CPU (consulte Determinando os dispositivos e as faixas de endereço para obter mais detalhes). Quando nenhuma faixa de endereços for definida, o sufixo do comando define a faixa do endereço. O comando wpset retorna a primeira faixa de endereços que for exposta pela CPU, wpdset retorna para a faixa do índice 1 (dados), wpiset retorna para a faixa do índice 2 (E/S), já wposet retorna para a faixa do índice 3 (opcodes). O parâmetro <tipo> determina o tipo de acesso que serão retidos, ele pode ser um destes 3 valores r para os acessos de leitura, w para os acessos para a escrita ou rw para ambos os acessos de leitura e escrita.

Já o parâmetro opcional <condição> permite que uma expressão seja definida para que ela seja avaliada cada vez que um ponto de controle seja alcançado. Quando o resultado da expressão for verdadeiro (não zero) o ponto de controle interromperá a execução, caso contrário, a execução continuará sem qualquer notificação. O parâmetro opcional <ação> oferece um comando para ser executado sempre que um ponto de controle seja alcançado e a <condição> seja verdadeira. Observe que talvez seja necessário cercar a ação dentro de chaves { } garantindo que as vírgulas e os ponto-e-vírgulas dentro do comando não sejam interpretadas no contexto do próprio comando wpset.

Cada ponto de controle que for definido é atribuído a um índice numérico que pode ser utilizado como referência em outros comandos do ponto de controle. Durante a sessão os índices do ponto de controle são únicos.

Duas variáves estão disponíveis para tornar as expressões <condição> mais uteis: para todos os pontos de controle, a variável wpaddr é definido no endereço de acesso que foi alcançado; para a gravação no ponto de controle, a variável wpdata é definida nos dados que estão sendo gravados.

Exemplos:

wp 1234,6,rw
Define um ponto de controle que interromperá uma execução na CPU que estiver visível sempre que uma leitura ou escrita acontecer na primeira faixa de endereço entre 1234-1239.
wp 23456:data,a,w,wpdata == 1
Define um ponto de controle que interromperá uma execução na CPU que estiver visível sempre que uma gravação ocorrer no espaço data na faixa de endereço entre 23456-2345f e a gravação dos dados seja igual à 1.
wp 3456:maincpu,20,r,1,{ printf "Read @ %08X\n",wpaddr ; g }
Define um ponto de controle na CPU com o caminho absoluto da etiqueta :maincpu a execução será interrompida sempre que ocorrer uma leitura na primeira faixa de endereço entre 3456-3475. Quando ocorrer, imprima Read @ <wpaddr> no console do depurador e a execução é resumida.
temp0 = 0 ; wp 45678,1,w,wpdata==f0,{ temp0++ ; g }
Define um ponto de controle na CPU que estiver visível que interromperá a execução sempre que ocorrer uma gravação no endereço 45678 e onde o valor que será escrito seja igual à f0. Quando ocorrer, incremente o valor temp0 e a execução é resumida.

Retorna para Comandos do ponto de controle do depurador.

wpclear

wpclear [<wpnum>[,…]]

Apaga os pontos de controle. Quando o <wpnum> for definido, as referências dos pontos de controle serão apagadas. Ao não ser definido, todos os pontos de controle serão apagados.

Exemplos:

wpclear 3
Apaga o ponto de controle com o índice 3.
wpclear
Apaga todos os pontos de controle.

Retorna para Comandos do ponto de controle do depurador.

wpdisable

wpdisable [<wpnum>[,…]]

Desativa os pontos de controle. Quando o <wpnum> for definido, as referências dos pontos de controle serão desativadas. Ao não ser definido, todos os pontos de controle serão desativados.

Observe que ao desativar um ponto de controle ele não é excluído, marca temporariamente o ponto de controle como inativo. Os pontos de controle que forem desativados não causam a interrupção da execução, as condições associadas às expressões não serão avaliadas e seus respectivos comandos não serão executados.

Exemplos:

wpdisable 3
Desativa o ponto de controle com o índice 3.
wpdisable
Desativa todos os pontos de controle.

Retorna para Comandos do ponto de controle do depurador.

wpenable

wpenable [<wpnum>[,…]]

Ativa os pontos de controle. Quando o <wpnum> for definido, as referências dos pontos de controle serão ativadas. Ao não ser definido, todos os pontos de controle serão ativados.

Exemplos:

wpenable 3
Ativa o ponto de controle com o índice 3.
wpenable
Ativa todos os pontos de controle.

Retorna para Comandos do ponto de controle do depurador.

wplist

wplist [<CPU>]

Lista os pontos de controle atuais junto com seus índices e quaisquer ações ou condições associadas. Quando nenhuma <CPU> for definida, os pontos de controle em todas as CPUs do sistema serão listadas, ao ser definida, apenas os pontos de controle para esta CPU será listada. A <CPU> pode ser determinada por uma etiqueta ou através de um número do depurador. (consulte Determinando os dispositivos e as faixas de endereço para obter mais detalhes).

Exemplos:

wplist
Lista todos os pontos de controle.
wplist .
Lista todos os pontos de controle para a CPU que estiver visível.
wplist maincpu
Lista todos os pontos de controle para a CPU com o caminho absoluto da etiqueta :maincpu.

Retorna para Comandos do ponto de controle do depurador.