Comandos de execução do depurador
step
s[tep] [<quantidade>]
Avança uma ou mais instruções sobre a CPU que estiver atualmente em execução. Executa uma instrução caso <quantidade> seja omitido ou a <quantidade> de passos para as instruções caso seja informada.
Exemplos:
sstep 4Retorna para Comandos de execução do depurador.
over
o[ver] [<quantidade>]
O comando over avança um único passo sobre uma ou mais instruções
que estiverem sendo executadas na CPU, passando por cima das chamadas da
sub-rotina e das capturas do manipulador e contando-os como uma única
instrução. Observe que, ao passar por cima de uma chamada da sub-rotina
o código pode ser executado nas outras CPUs antes do retorno da chamada.
Passa por cima de uma instrução caso a <quantidade> seja omitida, ou passe por cima das instruções caso a <quantidade> seja informada.
Observe que esta funcionalidade pode não estar implementada em todos os
tipos de CPU. Caso não esteja, então o comando over se comportará
exatamente como o comando step.
Exemplos:
oover 4Retorna para Comandos de execução do depurador.
out
out
O comando out avança um único passo até encontrar um retorno da
sub-rotina ou caso o retorno de uma instrução em exceção seja
encontrada. Observe que como ele detecta o retorno das condições da
exceção, caso tente sair de uma sub-rotina e uma interrupção/exceção
ocorra antes de atingir o final, será possível interromper o final das
exceções do manipulador prematuramente.
Observe que a funcionalidade para sair pode não estar implementada em
todos os tipos de CPU. Caso não esteja, então o comando out se
comportará exatamente como o comando step.
Exemplo:
outRetorna para Comandos de execução do depurador.
go
g[o] [<endereço>]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou que um ponto de controle [1] seja atingido ou até que você faça uma interrupção manual. Caso o <endereço> opcional seja fornecido, um ponto temporário de interrupção incondicional será definido na CPU que estiver visível no endereço determinado. Este ponto será eliminado automaticamente quando for atingido.
Exemplos:
gg 1234Retorna para Comandos de execução do depurador.
gbf
gbf [<condição>]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou de controle seja acionado ou até que uma ramificação condicional ou uma instrução ignorada não seja tomada, após qualquer slot atrasado.
O parâmetro opcional <condição> permite que você especifique uma expressão que será avaliada cada vez que uma ramificação condicional seja encontrada. Caso o resultado da expressão seja verdadeiro (não zero), a execução será interrompida se a ramificação não tiver sido tomada; caso contrário, a execução continuará sem qualquer notificação.
Exemplos:
gbfgbf {pc != 1234}1234.Retorna para Comandos de execução do depurador
gbt
gbt [<condição>]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou de controle seja acionado ou até que uma ramificação condicional ou uma instrução ignorada seja tomada, seguido de qualquer slot atrasado.
O parâmetro opcional <condição> permite que você especifique uma expressão que será avaliada cada vez que uma ramificação condicional seja encontrada. Caso o resultado da expressão seja verdadeiro (não zero), a execução será interrompida após a ramificação ter sido tomada; caso contrário, a execução continuará sem qualquer notificação.
Examplos:
gbtgbt {pc != 1234}1234.Retorna para Comandos de execução do depurador
gex
ge[x] [<exceção>,[<condição>]]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou de controle seja atingido, ou até que seja levantada uma condição de exceção na CPU atual. Use o parâmetro opcional <exceção> para parar a execução apenas numa condição de exceção específica. Caso a <exceção> não seja usada, a execução irá parar em qualquer condição de exceção.
O parâmetro opcional <condição> permite determinar uma expressão que será avaliada cada vez que uma condição específica de exceção for levantada. Caso o resultado da expressão seja verdadeiro (não zero), a exceção interromperá a execução; caso contrário, a execução continuará sem qualquer notificação.
Exemplos:
gexge 2Retorna para Comandos de execução do depurador.
gint
gi[nt] [<irqline>]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou de controle seja atingido, ou até que uma interrupção seja confirmada e reconhecida na CPU atual. Use o parâmetro opcional <irqline> para parar a execução apenas na interrupção determinada da linha que está sendo confirmada e reconhecida. Caso <irqline> não seja usado, a execução será parada quando qualquer interrupção for reconhecida.
Exemplos:
gigint 4Retorna para Comandos de execução do depurador.
gni
gni [<quantidade>]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou de controle seja acionado. Um ponto de interrupção temporário e incondicional é definido no endereço do programa <quantidade> atual, sendo passado de forma sequencial. Ele é automaticamente removido quando este ponto de interrupção é acionado.
O parâmetro <quantidade> é opcional e retorna para o padrão 1
quando nada for definido. O comando não faz nada caso <quantidade>
seja definido como 0. O valor limite para <quantidade> é o
decimal 512.
Exemplos:
gniRetoma a execução até que o ponto de interrupção/controle seja atingido, incluindo o ponto de interrupção temporário definido no endereço da instrução seguinte.
gni 2Retoma a execução até que o ponto de interrupção/controle seja atingido. Um ponto de interrupção é definido após duas instruções passarem da atual.
Retorna para Comandos de execução do depurador
gtime
gt[ime] <milissegundos>
Retoma a execução. O controle não será devolvido ao depurador até que o tempo interno da emulação tenha decorrido. O intervalo é determinado em milissegundos.
Exemplo:
gtime #10000Retorna para Comandos de execução do depurador.
gvblank
gv[blank]
Retoma a execução. O controle não será devolvido ao depurador até que um ponto de interrupção ou de controle seja atingido, ou até que se inicie o intervalo de apagamento vertical para uma tela emulada.
Exemplos:
gvRetorna para Comandos de execução do depurador.
next
n[ext]
Retoma a execução até que uma CPU diferente seja agendada. Caso seja ignorada pelo uso dos comandos ignore ou focus a execução da CPU não vai parar.
Exemplo:
nRetorna para Comandos de execução do depurador.
focus
focus <CPU>
Foca de forma exclusiva na <CPU> definida ignorando todas as outras. O argumento <CPU> pode ser a etiqueta de um dispositivo ou um número de depuração da CPU (consulte Determinando os dispositivos e as faixas de endereço para obter mais detalhes). É o mesmo que usar o comando ignore para ignorar todas as CPUs que não seja a CPU que foi definida.
Exemplos:
focus 1focus audiopcb:melodycpu:audiopcb:melodycpu.Retorna para Comandos de execução do depurador.
ignore
ignore [<CPU>[,<CPU>[,…]]]
Ignora determinadas CPUs no depurador. As CPUs podem ser definidas através de uma etiqueta ou pelo número da CPU no depurador (consulte Determinando os dispositivos e as faixas de endereço para obter mais detalhes). O depurador nunca mostra a execução para as CPUs que forem ignoradas e os pontos de interrupção ou de observação nas CPUs ignoradas não têm qualquer efeito. Caso nenhuma CPUs seja indicada, as CPUs atualmente ignoradas serão listadas. Utilize o comando observe para parar de ignorar uma CPU.
Observe que você não pode ignorar todas as CPUs; pelo menos uma CPU deve ser observada o tempo todo.
Exemplos:
ignore audiocpu:audiocpu ao utilizar o depurador.ignore 2,3,4ignoreRetorna para Comandos de execução do depurador.
observe
observe [<CPU>[,<CPU>[,…]]]
Permite a interação com determinada CPU no depurador. As CPUs podem ser definidas através de etiquetas ou pelo número da CPU (consulte Determinando os dispositivos e as faixas de endereço para obter mais detalhes). Este comando reverte o comando ignore. Quando nenhuma CPUs for definida, apenas as CPUs observadas no momento serão listadas.
Exemplos:
observe audiocpu:audiocpu ao utilizar o depurador.observe 2,3,4observeRetorna para Comandos de execução do depurador.
trace
trace {<nome_do_arquivo>|off}[,<CPU>[,[noloop|logerror][,<ação>]]]
Inicia ou interrompe o rastreamento da execução de determinada <CPU>
ou da <CPU> atualmente visível caso nenhuma tenha sido definida. Para
ativar o rastreamento defina o nome do arquivo para o registro do
rastreamento no parâmetro <nome_do_arquivo>. Para desativar o
rastreamento use o termo off no parâmetro <nome_do_arquivo>.
Quando o argumento <nome_do_arquivo> começar com dois chevrons (>>),
ele é tratado como uma diretiva para abrir o arquivo para anexar em vez
de gravar por cima.
O terceiro parâmetro opcional é um campo sinalizador. As sinalizações
compatíveis são noloop e logerror. As diversas sinalizações
devem ser separadas por caracteres | (barra vertical). Por padrão,
os laços são detectados e condensados numa única linha. Quando a
sinalização noloop for definida, os loops não serão detectados e
todas as instruções serão registradas como já executadas. Quando a
sinalização logerror for definida, a saída do registro de erro será
incluída no registro de rastreamento.
O parâmetro opcional <ação> é um comando de depuração para ser
executado antes que cada mensagem de rastreamento seja registrada.
Geralmente, isto incluirá um comando
tracelog ou tracesym
incluindo informações adicionais no registro de rastreamento. 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
trace.
Exemplos:
trace joust.trjoust.tr.trace dribling.tr,maincpu:maincpu:, registrando a saída no arquivo dribling.tr.trace starswep.tr,,noloopstarswep.tr, com a detecção de loop desativada.trace starswep.tr,1,logerrorstarswep.tr.trace starswep.tr,0,logerror|noloopstarswep.tr, com a detecção de loop desativada.trace >>pigskin.trpigskin.tr.trace off,0trace asteroid.tr,,,{tracelog "A=%02X ",a}asteroid.tr. Antes de cada linha registra A=<aval> ao registro de rastreamento.Retorna para Comandos de execução do depurador.
traceover
traceover {<nome_do_arquivo>|off}[,<CPU>[,[noloop|logerror][,<ação>]]]
Inicia ou interrompe o rastreamento da execução de determinada <CPU> ou da <CPU> atualmente visível caso nenhuma tenha sido definida. No momento que o retorno a sub-rotina é encontrada, o rastreamento será ignorado
No momento que uma chamada de sub-rotina é encontrada, a sub-rotina será ignorada pelo rastreamento. É usado o mesmo algoritmo que é usado no comando step over. Ele não funcionará corretamente com funções recursivas ou caso o endereço retornado não siga imediatamente a instrução da chamada.
Este comando aceita os mesmos parâmetros que o comando trace. Favor consultar a seção correspondente para uma descrição mais detalhada das opções e para obter mais exemplos.
Exemplos:
traceover joust.trjoust.tr.traceover dribling.tr,maincpu:maincpu:, registrando a saída no arquivo dribling.tr.traceover starswep.tr,,noloopstarswep.tr, com a detecção de loop desativada.traceover off,0traceover asteroid.tr,,,{tracelog "A=%02X ",a}asteroid.tr. Antes de cada linha registra A=<aval> ao registro de rastreamento.Retorna para Comandos de execução do depurador
traceflush
traceflush
Grava no disco todos os arquivos dos registros de rastreamento que estiverem abertos.
Exemplo:
traceflushRetorna para Comandos de execução do depurador