Comandos do ponto de controle do depurador¶
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
1234-1239
.wp 23456:data,a,w,wpdata == 1
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 }
: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 }
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
3
.wpclear
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
3
.wpdisable
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
3
.wpenable
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
wplist .
wplist maincpu
:maincpu
.Retorna para Comandos do ponto de controle do depurador.