Debug (comando)

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

debug [[Drive:][caminho] arquivo [parâmetros]]

[2]

Exemplo:
c:\> debug programa.com

Montador Assembly

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

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

  1. Daniel B. Sedory. «A Guide to DEBUG». Consultado em 13 de setembro de 2011 
  2. «Debug». Microsoft Technet. Consultado em 13 de setembro de 2011 

https://qametrik.com/saiba-qual-a-importancia-do-debug-na-customizacao-abap/

Ícone de esboço Este artigo sobre software é um esboço. Você pode ajudar a Wikipédia expandindo-o.