Debug (comando) – Wikipédia, a enciclopédia livre
Debug (debug.exe) é um comando que foi criado no início dos anos 1980 e acompanhava sistemas operacionais DOS[1] (MS-DOS, PC-DOS, OS/2). O comando continuou a ser incorporado em diversas interfaces e sistemas operacionais posteriores como o Windows 3.1, Windows 95, Windows 98, Windows NT, Windows XP, Windows Vista 32 bits, Windows 7 32 bits, poderia ser acessado pelo shell (command.com ou cmd), porém foi removido do Windows Vista e Windows 7 64 bits, e no Windows 8 32 e 64 bits.
Nos sistemas Microsoft Windows ele usualmente era encontrado na pasta %windows%\system32.
O comando é tido como especialmente útil para interpretar e monitorar o funcionamento de programas executáveis, bem como encontrar possíveis erros operacionais. Com ele é possível abrir apenas programas .COM (até 64K de memória), além de fazer leitura de disco pelo processo de interrupção da BIOS e interrupção do MS-DOS (que o Windows emulava em modo shell) para examinar o FAT (File Allocation Table) e Boot (setor de inicialização do sistema), sendo possível investigar sua aparência em Assembly (baixo nível).
Além exibir a aparência em assembly de praticamente qualquer executável, ele também exibia em formato hexadecimal do arquivo utilizando-se a sintaxe: debug nome_do_executável.
Sintaxe
[editar | editar código-fonte]debug [[Drive:][caminho] arquivo [parâmetros]]
Exemplo:
c:\> debug programa.com
Montador Assembly
[editar | editar código-fonte]Além de ser um disassembly, o debug tambem monta programas escrevendo diretamente ou em códigos hexa, porém, sendo desenvolvido para arquitetura x86 e ainda na década de 80, ele não entende os modernos mnemônicos que a intel introduziu, nem o recurso MMX de manipulação gráfica da intel.
Uma montagem de programa para ler o BOOT do disquete:
c:\> debug -a 0B6E:0100 mov ax,0201 0B6E:0103 mov bx,200 0B6E:0106 mov dx,0 0B6E:0109 mov cx,1 0B6E:010C int 13 0B6E:010E int 20 0B6E:0110 -g=100
Funções Básicas
[editar | editar código-fonte]Após rodar o comando Debug, estão disponíveis as seguintes funções (principais)
-A - a100 (Começar a escrever Assembly a partir do endereço 100h)
-D - D100 ( Exibir em formato Hexa, a partir do endereço 100h )
-U - U100 (Exibir em imagem Disassembly a partir do endereço 100h )
-RCX - rcx20 (reservar 20 bytes hexa para o programa mencionado em "N")
-N - N arquivo.com ( considerar o nome arquivo.com quando for selecionado gravacao em disco através do recurso "W")
-W - W ( gravar conteúdo reservado a partir de 100h com a quantidade definida em "RCX" utilizando o nome mencionado em "N")
-G - G=120 (executar o programa a partir do endereço hexa 120h )
-O
-Q - ( sair do Debug )
Referências
- ↑ Daniel B. Sedory. «A Guide to DEBUG». Consultado em 13 de setembro de 2011
- ↑ «Debug». Microsoft Technet. Consultado em 13 de setembro de 2011
https://qametrik.com/saiba-qual-a-importancia-do-debug-na-customizacao-abap/