Casa / Tutorial Windows / Cos'è l'utilità di debug exe. Lavorare con la riga di comando di Windows, il programma Debug e il suo utilizzo. Domande per l'ammissione

Cos'è l'utilità di debug exe. Lavorare con la riga di comando di Windows, il programma Debug e il suo utilizzo. Domande per l'ammissione

Un driver è essenzialmente un collegamento tra il sistema operativo, ovvero il software, e l'hardware, ovvero dispositivi fisici come schede video, stampanti, processori, ecc. Il sistema operativo può contenere driver di base per la maggior parte dispositivi necessari- mouse, tastiera, ma tutto il resto richiederà nuovi driver.

Come installare il driver?

1. Modo più semplice se disponibile file di configurazione, devi solo eseguirlo e seguire le istruzioni del programma di installazione.
2.Se non è disponibile alcun programma di installazione, ma sono presenti solo file con estensioni *.inf, *.dll, *.vxt, *.sys, *.drv., allora l'algoritmo delle azioni dovrebbe essere simile a questo:

a) Per prima cosa è necessario selezionare l'icona sul desktop ( Il mio computer) e cliccarci sopra con il tasto destro del mouse, nel menù a tendina selezionare ( Proprietà).

b) Ora vai alla scheda ( Attrezzatura) e premere il pulsante ( Gestore dispositivi).

c) Ora è necessario selezionare il dispositivo per il quale verrà installato/aggiornato il driver. Sulla linea con il dispositivo, fare clic con il tasto destro e selezionare nel menu a discesa ( Proprietà), oppure puoi semplicemente fare doppio clic su di esso per accedere alle impostazioni desiderate.


d) Vai alla scheda ( Autista), selezionare il pulsante ( ricaricare).

e) Nella finestra di dialogo che appare, selezionare l'elemento ( No non questa volta) e vai ( Ulteriore).

f) Ci sono due opzioni in questa fase. Puoi provare a installare i driver in Modalità automatica, quindi il sistema operativo stesso proverà a trovare i driver adatti al dispositivo e installarli, per questo selezioniamo ( Installazione automatica (consigliata)), se il tentativo fallisce, vai al secondo passaggio ( Installazione da una posizione specificata) e scegli ( Ulteriore).


g) Questa voce di menu implica una scelta tra la ricerca di un driver su un supporto rimovibile e l'opzione per specificare la cartella con il driver. Pertanto, se è disponibile un disco con i driver, è necessario inserire il disco nel CD-rom e selezionare l'opzione ( Ricerca su supporti rimovibili (floppy, CD...)) e vai ( Ulteriore).

Se il driver viene trovato e scaricato da Internet da solo, è necessario specificare manualmente il percorso della cartella in cui si trovano i dati di installazione per il driver come segue. Scegliere oggetto ( Includi la seguente posizione di ricerca:) e vai a ( Revisione), selezionare ora la cartella con il driver dall'elenco e fare clic sul pulsante ( OK). Ora vai avanti con coraggio Ulteriore), se tutto è stato eseguito correttamente, inizierà l'installazione del driver necessario.

debug.exe Un programma debugger utilizzato per ispezionare ed eseguire il debug dei file eseguibili.

Utilizzato con il sistema operativo MS-DOS . Per versioni successive sistemi operativi

funziona tramite l'emulatore MS-DOS e ha opportunità limitate. Chiamato tramite riga di comando

DEBUG [[unità:][percorso]nomefile [opzioni]].

Ad esempio: DEBUG C:\...\My.com

Questo programmaè un'applicazione console ed è progettata per creare o modificare file di codice. Con esso, puoi creare semplice applicazione sotto MS-DOS e monitorare il loro lavoro. Questo debugger è al livello più basso dei compilatori assemblatore. Ma ha buone caratteristiche, come visualizzare e modificare la memoria, ottenere lo stato dei registri.

comandi debug.exe

regole del set di comandi debug.exe:

· Debug.exe non fa distinzione tra maiuscole e minuscole.

· Gli spazi nei comandi vengono utilizzati solo per separare i parametri.

· I numeri inseriti devono essere in formato esadecimale e senza la lettera h finale.

· Il segmento e l'offset vengono scritti utilizzando i due punti, nel formato segment:offset, ad esempio CS:3C1 (offset 3C1h nel code segment) o 40:17 (offset 17h nel segmento il cui indirizzo iniziale è 40h).

Dopo aver caricato il debugger, sullo schermo verrà visualizzato un prompt simile a un trattino. Registri CS, D.S., ES, SS a questo punto vengono inizializzati con l'indirizzo del prefisso del segmento di programma a 256 byte, e l'area di lavoro in memoria partirà dall'indirizzo di questo prefisso + 100h. Squadre debug.exe vengono inseriti immediatamente dopo l'invito nel punto contrassegnato dal cursore. Ogni comando è costituito da un identificatore e parametri, l'identificatore è costituito da una singola lettera.

Tabella 1. Tabella riassuntiva di tutti i comandi debug.exe

Squadra Descrizione Formato
A (Assemblaggio) Traduzione di comandi assembler in codice macchina; l'indirizzo predefinito è CS:0100h. UN[<адрес_начала_кода>]
C (confronta) Confrontando il contenuto di due aree di memoria; l'impostazione predefinita è DS. Il comando specifica la lunghezza delle sezioni o un intervallo di indirizzi. C<начальный_адрес_1>l<длина> <начальный_адрес_2>C<начальный_адрес_1> <конечный_адрес_1> <начальный_адрес_2>
D (Visualizza/Scarica) Visualizza il contenuto di un'area di memoria nei formati esadecimale e ASCII. L'impostazione predefinita è DS; è possibile specificare la lunghezza o l'intervallo. D[<начальный_адрес>] D [indirizzo_iniziale indirizzo_finale]
E (Invio) Inserimento di dati o istruzioni in codice macchina in memoria; l'impostazione predefinita è DS. E[<адрес> [<инструкции/данные>]]
FA (Riempi) Riempire l'area di memoria con i dati della lista; l'impostazione predefinita è DS. Puoi utilizzare sia la lunghezza che l'intervallo. F<начальный_адрес_1>l<длина> "<данные>" F<начальный_адрес> <конечный_адрес> "<данные>"
SOL (Vai) Eseguire un programma in linguaggio macchina sottoposto a debug fino a un punto di interruzione specificato; l'impostazione predefinita è CS. Quando si esegue questa operazione, assicurarsi che l'IP contenga l'indirizzo corretto. G[=<начальный_адрес>] <адрес_останова> [<адрес_останова> ...]
H (esadecimale) Calcola la somma e la differenza di due valori esadecimali. H<величина_1> <величина_2>
Io (Ingresso) Legge ed emette un byte da una porta. io<адрес_порта>
L (Carico) Caricamento di un file o di dati dai settori del disco in memoria; il valore predefinito è CS:100h. Il file può essere specificato con il comando N o un argomento durante l'esecuzione di debug.exe. L[<адрес_в_памяти_для_загрузки>]L[<адрес_в_памяти_для_загрузки> [<номер_диска> <начальный_сектор> <количество_секторов>]]
M (Sposta) Copiare il contenuto delle celle di memoria; l'impostazione predefinita è DS. È possibile specificare sia la lunghezza che l'intervallo. M<начальный_адрес>l<длина> <адрес_назначения>M<начальный_адрес> <конечный_адрес> <адрес_назначения>
N (Nome) Specificare un nome file per i comandi L e W. N<имя_файла>
O (Uscita) Invio di un byte a una porta. O<адрес_порта> <байт>
P (procedi) Esegue CALL, LOOP, INT o un'istruzione stringa ripetuta con prefissi REPnn, procedendo all'istruzione successiva. P[=<адрес_начала>] [<количество_инструкций>]
Q (esci) Chiusura di debug.exe. Q
R (Registrati) Emissione del contenuto dei registri e dell'istruzione successiva. R<имя_регистра>
S (cerca) Ricerca in memoria di caratteri dall'elenco; l'impostazione predefinita è DS. È possibile specificare sia la lunghezza che l'intervallo. S<начальный_адрес>l<длина> "<данные>"S<начальный_адрес> <конечный_адрес> "<данные>"
T (traccia) Esecuzione passo passo del programma. Come con il comando P, la coppia predefinita è CS:IP. Noto che per eseguire gli interrupt è meglio usare il comando P. T[=<адрес_начала>] [<количество_выполняемых_команд>]
U (Smonta) Disassemblaggio del codice macchina; l'impostazione predefinita è la coppia CS:IP. Sfortunatamente, debug.exe non disassembla correttamente le istruzioni specifiche per i processori 80286+, sebbene vengano comunque eseguite correttamente. tu[<начальный_адрес>]U[<начальный_адрес конечный_адрес>]
W (Scrivi) Scrivere un file da debug.exe; è necessario specificare il nome del file con il comando N se non è stato caricato. E i programmi vengono registrati solo come file .COM! W[<адрес> [<номер_диска> <начальный_сектор> <количество_секторов>]]


Visualizzazione delle aree di memoria

Diamo un'occhiata più da vicino al lavoro della squadra D, che consente di visualizzare il contenuto delle singole aree di memoria. Questo esempio utilizza il comando D per visualizzare l'area di memoria a partire da 0159:0240:

Qui, in risposta a una richiesta di visualizzazione di un'area di memoria, abbiamo ricevuto otto righe che indicano il contenuto dell'area di memoria selezionata. Ogni riga ha tre parti:

L'indirizzo del primo byte a sinistra visualizzato nel formato segmento: offset.

· Rappresentazione esadecimale di un paragrafo (16 byte) che inizia con il byte specificato all'inizio della stringa.

· Caratteri dello stesso paragrafo in formato ASCII.

L'indirizzo specificato nella riga si riferisce esclusivamente al primo byte del paragrafo e gli indirizzi dei byte successivi devono essere calcolati indipendentemente. La rappresentazione esadecimale contiene due caratteri in ciascun byte e i byte stessi sono separati da spazi per facilitarne la lettura. Si noti inoltre che l'ottavo e il nono byte sono separati da un trattino, dividendo così il paragrafo in due parti e facilitando il calcolo degli indirizzi dei byte nel paragrafo.

Trucchi utili con la squadra D

Controllo delle porte parallele e seriali

I primi 16 byte dell'area dati del BIOS contengono gli indirizzi delle porte parallela e seriale. Pertanto, puoi controllare queste porte con il seguente comando:

I primi otto byte stampati indicano gli indirizzi delle porte seriali. COM1-COM4. I successivi 8 byte indicano gli indirizzi delle porte parallele. LPT1-LPT4. Ad esempio, se il tuo computer ha una porta parallela, molto probabilmente i primi due byte saranno: 7803. L'indirizzo della porta è scritto in ordine inverso, ad es. 0378.

Controllo dell'attrezzatura

I primi due byte, che si trovano nel BIOS all'indirizzo 410h, contengono informazioni sull'hardware installato nel sistema. Troviamo questi byte con il comando:

Supponiamo che i primi due byte siano 23 44. Decodifichiamo questi byte per ottenere informazioni su dispositivi installati. Per fare ciò, trasformiamo questi byte (44 23), quindi li traduciamo in un sistema numerico binario. Noi abbiamo:

Valore in bit
Posizione della punta

Cosa significano questi bit? Continuiamo a decifrare:

Controllo dello stato del registro della tastiera

Nell'area dati BIO dall'indirizzo 417 hè il primo byte che memorizza lo stato del registro della tastiera. Spegnere Blocco Numerico e blocco del cappuccio , quindi digitiamo il comando:

Il primo byte sarà 00. Includendo Blocco Numerico e blocco del cappuccio, eseguire nuovamente il comando. Ora il primo byte dovrebbe essere uguale a 60. È stato stabilito sperimentalmente che quando Blocco Numerico il primo byte è 20, e quando blocco del cappuccio - 40.

Controllo dello stato del sistema video

Dall'indirizzo 449 ore in BIO si trova la prima area di dati video. Per verificare digitiamo:

Il primo byte indica la modalità video corrente (ad esempio, 03 - colore) e il secondo - il numero di colonne (ad esempio, 50 - modalità con 80 colonne). Il numero di linee può essere trovato su 484 ore (40:84).

Controllo del copyright del BIOS e del numero di serie

Informazioni sul copyright per BIO Costruito dentro BIOS della ROM dall'indirizzo FE00:0. La stringa del copyright può essere facilmente trovata in una sequenza ASCII e il numero di serie può essere trovato come numero esadecimale. Tuttavia, la riga del copyright potrebbe essere lunga e non rientrare nell'area di output della memoria. In questo caso, devi solo entrare di nuovo D.

Controllo della data di produzione del BIOS

Questa data è registrata anche in BIOS della ROM partendo dall'indirizzo FFFF:5. Dopo aver eseguito il comando corrispondente, questa data sarà nella sequenza ASCII, scritta nel formato mm/gg/aa.

Mettere un programma in memoria direttamente con debug.exe

debug.exe permette di inserire il programma direttamente nella memoria della macchina, per poi monitorarne e controllarne l'esecuzione. Entreremo nel programma in codici macchina usando il comando E. Allo stesso tempo, stai attento inserire dati errati all'indirizzo sbagliato è irto di conseguenze imprevedibili! Anche se è improbabile che ciò porti a seri problemi nel sistema, ma perdendo tutti i dati inseriti debug.exe, puoi facilmente. Il programma da inserire utilizza i dati incorporati direttamente nel corpo delle istruzioni. Di seguito è riportato un elenco del programma in assembler, i commenti indicano analoghi dei comandi di linguaggio nei codici macchina, nonché una spiegazione di ciascun comando. Si noti che non vi è alcun simbolo nei numeri h, poiché, come accennato in precedenza, debug.exe comprende solo i numeri esadecimali.

MOV ASCIA, 0123 ; codice B82301: inseriamo in AX il valore 0123h

AGGIUNGI ASCIA, 0025 ; codice 052500: aggiungere 0225h al valore AX

MOV BX, AX ; codice 8BD8: inseriamo il valore di AX in BX

AGGIUNGI BX, AX ; codice 03D8: somma il valore AX a BX

MOVCX, BX; codice 8BCB: inseriamo il valore di BX in CX

SUB CX, AX ; codice 2BC8: sottrarre il valore AX da CX

SUB ASCIA, ASCIA ; codice 2BC0: cancella AX

PMP 100 ; Codice EBEE: vai all'inizio del programma

Come puoi vedere, ogni istruzione macchina è lunga da 1 a 3 byte. Il primo byte specifica l'operazione, il byte successivo ne specifica gli operandi. L'esecuzione del programma parte dalla prima istruzione e percorre tutte le istruzioni una per una. Ora puoi inserire il programma in memoria. Dividiamo il codice macchina in tre parti di sei byte e inseriamo ciascuna utilizzando il comando E e partendo dall'indirizzo SC:100.

Ora che il programma è in memoria, proviamo a controllarne l'esecuzione. Per prima cosa controlliamo lo stato attuale dei registri e dei flag, per questo inseriamo il comando R. Il debugger stamperà il contenuto dei registri in esadecimale; sul macchine diverse il contenuto dei registri può variare.

Quindi, come puoi vedere, debug.exe segmenti inizializzati D.S., ES, SS, CS lo stesso indirizzo. Registrati IP contiene 0100 , che indica che le istruzioni vengono eseguite dall'offset 100 ore relativamente CS(e noi, inserendo le istruzioni in memoria, abbiamo appena indicato questo indirizzo).

Qui sono indicati anche i valori dei flag overflow, direction, interrupt, sign, zero, extra carry, parity e carry:

Dopo lo stato dei registri e dei flag, debug.exe restituisce informazioni sulla prima istruzione da eseguire:

· L'indirizzo dell'istruzione, nel nostro caso è 0B12:0100, dove 0B12 è l'indirizzo del segmento di codice.

· Codice macchina corrispondente a questo manuale (B82301).

· L'effettiva istruzione scritta in assembler (MOV AX,0123).

Ora, dopo aver analizzato il contenuto dei registri e dei flag, passiamo all'esecuzione del programma. Eseguiremo il programma passo dopo passo utilizzando il comando T. Utilizzo del comando per la prima volta T, eseguiamo l'istruzione MOV. Qui, il codice macchina dell'operando dell'istruzione è 2301 . Luoghi operativi 23 in AL(la metà più giovane ASCIA), un 01 - in AH(più vecchio). Successivamente debug.exe stampa nuovamente le informazioni del registro:

Adesso ASCIA contiene 0123h, IP0103h(da qui la lunghezza dell'istruzione eseguita: 0103h - 0100h = 3 byte) e l'istruzione successiva è l'operazione INSERISCI. Quindi, più e più volte eseguendo il comando T, arriveremo all'ultima istruzione MP 100. Imposterà il registro IP in 100 ore, e debug.exe tornerà all'inizio del programma. Tornando all'inizio del programma, va notato che in D.S., ES, SS e CS contiene lo stesso indirizzo. Il fatto è che debug.exe considera i programmi immessi solo come programmi .COM. E nei programmi .COM, A differenza di .EXE, stack, codice e dati vengono archiviati nello stesso segmento.

Montaggio e smontaggio

Nell'esempio precedente, abbiamo inserito il programma in codici macchina, tuttavia, debug.exe abbastanza in grado di comprendere le istruzioni scritte in assembler. Per lavorare con tali programmi in debug.exe vengono utilizzati i comandi UN e U.

Squadra UN richiede istruzioni in linguaggio assembly e le converte in codice macchina. Innanzitutto, inizializziamo l'indirizzo iniziale per l'inserimento delle istruzioni (100h):

Il debugger restituirà l'indirizzo del segmento di codice e l'offset (ad esempio, 13F2:0100). Ora dobbiamo entrare seguenti istruzioni in assembler in memoria, dopo ogni riga premendo accedere:

Dopo aver inserito l'ultima istruzione, premere accedere due volte per indicare al debugger che abbiamo finito di digitare il programma. Ora il programma può essere eseguito utilizzando i comandi R per visualizzare registri e T per il tracciamento. Noto che nei miei programmi, se ci sono istruzioni INT non dovrebbero essere elaborati dal comando T, e la squadra P, che gestisce tutti gli interrupt contemporaneamente.

Passiamo alla procedura di smontaggio e, come esempio, prendiamo il programma che abbiamo appena inserito. Utilizziamo gli indirizzi della prima e dell'ultima istruzione per indicare l'intervallo che andremo a smontare, ad es. 100 ore e 107 ore.

Dopo aver eseguito questo comando debug.exe stamperà le istruzioni nell'intervallo specificato, in assembler, in codice macchina, nonché l'indirizzo di ciascuna istruzione:

Salvataggio di un programma su disco

Innanzitutto, viene dato il nome del file:

Quindi per registrarsi CXè necessario inserire la dimensione del programma in byte. Sarà uguale alla differenza tra l'offset finale e quello iniziale. Ora non resta che scrivere su disco con il comando W e come risultato vedere il numero di byte scritti. Di conseguenza, otteniamo un programma pronto per l'esecuzione.

L'uscita viene eseguita dal comando q. Esempio:

0B3B:0100 mov ascia,1234

0B3B:0103 movimento ah, 4c

0B3B:0105 intero 21

0B3B:0100 B83412 MOV ASCIA,1234

0B3B:0103 B44C MOV AH,4C

0B3B:0105 CD21INT 21

AX=0000 BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=0B3B ES=0B3B SS=0B3B CS=0B3B IP=0100 NV UP EI PL NZ NA PO NC

0B3B:0100 B83412 MOV ASCIA,1234

Scrivi 00007 byte

Per soddisfare questo lavoro di laboratorio Avrai bisogno di alcuni comandi assembler:

movimento,<шестнадцатиричное число>- registrare l'iscrizione AH numeri 02 specificare una funzione di sistema - visualizzazione di un carattere sullo schermo;

MOVDL,<шестнадцатиричное число>- registrare l'iscrizione DL codice carattere;

INT 21 - il principale interrupt (procedura) DOS che ne implementa molti varie funzioni; il numero della funzione è prescritto nel registro AH; per stampare un carattere sullo schermo - nel registro AH funzione 02, mentre in DL pre-registrare il codice carattere.

INT 20 - Interrupt DOS che esce dal programma (dal programma .COM).

Esempio:

Visualizza il carattere "*" sullo schermo.

movAH,02 ; funzione del sistema 02 - visualizzazione di un carattere sullo schermo

movDL,2A ; Codice asterisco ASCII

intero 21h ; interrompere l'output "*"

intero 20h ; uscire dal programma

Compito pratico

Obbiettivo

Introduzione al debugger debug.exe. Ottenere abilità pratiche nel lavorare con questo programma.

Attrezzatura:

Personal computer che esegue il sistema operativo Windows.

Software:

Programma di debug.

Domande per l'ammissione

1. Qual è lo scopo del programma Debug?

2. Come eseguire questo programma?

3. Come vengono inseriti i comandi in Debug?

4. Cos'è un identificatore?

5. Come viene inserito il programma in Debug?

Esercizio

· Studiare il materiale teorico.

· Eseguire i comandi descritti nel testo.

Trova la somma e la differenza di 2 numeri: il 1° numero è il numero del gruppo (tradotto in forma esadecimale), il 2° è il numero opposto al numero della prima lettera del cognome dell'alfabeto (un numero negativo in codice aggiuntivo). Converti la somma e la differenza in decimale.

· Visualizzare il contenuto dei registri del microprocessore, così come i flag e scriverli nel protocollo. Qual è la funzione di ciascun registro? .

· Scrivi il primo numero (dall'attività 3) nel registro AX e il secondo numero (dall'attività 3) nel registro BX. Digitare RAM nel segmento di codice (offset 100) l'istruzione macchina per sommare i registri AX e BX. Visualizza il suo modulo assembler sullo schermo. Esegui questo comando, converti il ​​risultato in forma decimale.

· Inserisci nella RAM nel segmento di codice (offset 100) una serie di comandi assembler per stampare un carattere sullo schermo - la prima lettera del tuo cognome. Controlla il programma in DEBUG. Quindi masterizzalo su disco come file .COM. Qual è la dimensione del programma? Eseguilo per l'esecuzione da DOS.

· Descrivere tutte le azioni nel report.

1. Titolo dell'opera.

2. Lo scopo del lavoro.

3. Strumenti e attrezzature.

4. Brevi informazioni teoriche.

5. Descrizione delle azioni intraprese.

6. Il testo del programma creato.

7. Conclusioni.

domande di prova

1. Quale comando produce input di dati o istruzioni in codice macchina nella memoria?

2. Come confrontare i contenuti di due aree di memoria?

3. Come riempire l'area di memoria con i dati della lista?

4. Quale comando esegue un programma sottoposto a debug in linguaggio macchina?

5. Quale comando scrive un file da Debug?

6. Come avviene il montaggio e lo smontaggio?

DOS Debug è un'applicazione di debug che migliora la funzionalità del comando MS DEBUG originale. Funzionando solo su architetture di computer a 32 bit, svolge il ruolo di assemblatore e dissambler, fornendo ai programmatori un modo per diagnosticare COM e altri file eseguibili.

Il pacchetto include un binario destinato per il debug Applicazioni a 16 bit (DEBUG.COM), nonché una versione modificata denominata DEBUGX.COM, compatibile con le applicazioni a 16 e 32 bit che vengono eseguite in modalità protetta (abilitata DPMI).

L'applicazione viene eseguita nella console dei comandi, consentendo di visualizzare un elenco di tutti i comandi disponibili accedendo alla sezione "Aiuto".

Tra le funzionalità aggiuntive offerte da DOS Debug puoi trovare miglioramenti all'assembler e al dissasembler (che possono avvisarti nel caso in cui vengano rilevate incompatibilità del processore), supporto per FPU Opcodes, CPU 80386+ e come tali, nomi di registro a 32 bit.

Inoltre, può fungere da applicazione di dump esadecimale e raggruppa opzioni per analizzare il contenuto della memoria, confrontare o riempire un intervallo di indirizzi, visualizzare la catena MCB (blocco di controllo della memoria DOS). Altri comandi consentono di accedere a determinate sezioni del disco, porte e settori di memoria o di impostare il nome di un programma.

DEBUG.COM viene eseguito come programma a 16 bit, il che significa che può agire solo su applicazioni a 16 bit, ma la sua versione migliorata (DEBUGX.COM) consente anche il debug di programmi DPMI a 32 bit.

Destinato a programmatori esperti, DOS Debug fornisce un'utilità che può sostituire il comando MS DEBUG. Può elaborare pacchetti DPMI sia a 16 bit che a 32 bit e include una descrizione dettagliata delle funzioni nella documentazione, che consente una facile comprensione di ciò che fa ciascun comando.

Strumenti di debug per Windows- Strumenti di debug del codice operativo Sistemi Windows. Sono un insieme di programmi distribuiti liberamente da Microsoft progettati per il debug del codice in modalità utente e in modalità kernel: applicazioni, driver, servizi, moduli del kernel. Il toolkit include debugger della console e della GUI, utilità per lavorare con simboli, file, processi, utilità per il debug remoto. Il toolkit contiene utilità con le quali è possibile trovare le cause dei guasti in vari componenti del sistema. Strumenti di debug per Windows da un certo momento non sono disponibili per il download sotto forma di distribuzione standalone e fanno parte del Windows SDK (Windows Software Development Kit). Set strumentale Strumenti di Windows L'SDK, a sua volta, è disponibile come parte del MSDN Subscription Program o può essere scaricato gratuitamente come distribuzione separata da msdn.microsoft.com. Secondo gli sviluppatori, la versione più recente e aggiornata di Debugging Tools for Windows è contenuta in Windows SDK.

Gli strumenti di debug per Windows vengono aggiornati e pubblicati in accesso pubblico abbastanza spesso e questo processo non dipende dal rilascio dei sistemi operativi. Pertanto, controlla periodicamente le nuove versioni.

Vediamo ora a cosa servono, in particolare, i Debugging Tools Microsoft Windows:

  • Debug di applicazioni locali, servizi (servizi), driver e kernel;
  • Debug sulla rete applicazioni remote, servizi (servizi), driver e kernel;
  • Eseguire il debug delle applicazioni in esecuzione in tempo reale;
  • Analizza i file di dump della memoria delle applicazioni, del kernel e del sistema nel suo insieme;
  • Lavorare con sistemi basati su architetture x86/x64/Itanium;
  • Eseguire il debug di programmi in modalità utente e in modalità kernel;

Sono disponibili le seguenti versioni degli strumenti di debug per Windows: x86 a 32 bit, Intel Itanium, x64 a 64 bit. Ne abbiamo bisogno due: x86 o x64.

Esistono diversi modi per installare Debugging Tools per Windows, in questo articolo considereremo solo i principali:

  • Installazione tramite web installer.
  • Installazione degli strumenti di debug per Windows da ISO Immagine Windows SDK.
  • Installazione degli strumenti di debug per Windows direttamente dai pacchetti dbg_amd64.msi /dbg_x86.msi.

Non è chiaro a che punto, perché dovrei installare strumenti di debug su un computer? Spesso, dopotutto, ti imbatti in una situazione in cui l'intervento nell'ambiente di lavoro è estremamente indesiderabile! E ancora di più dal momento che l'installazione di un nuovo prodotto, ovvero apportare modifiche al registro / file di sistema, potrebbe essere del tutto inaccettabile. I server mission-critical sono esempi. Perché gli sviluppatori non prendono in considerazione le versioni portatili delle applicazioni che non richiedono l'installazione?
Da versione a versione, il processo di installazione del pacchetto Debugging Tools for Windows subisce alcune modifiche. Passiamo ora direttamente al processo di installazione e osserviamo i modi in cui è possibile installare il toolkit.

Installazione degli strumenti di debug per Windows tramite Web Installer

Vai alla pagina Archivio di Windows SDK e trova la sezione sotto Nome Windows 10 e precedenti "Windows 10 SDK (10586) e Microsoft Windows 10 Mobile Device Emulator (versione 10586.11)".

Fare clic su un elemento INSTALLA SDK. Dopo aver fatto clic, scarica ed esegui il file sdksetup.exe, che avvia il processo di installazione online di Windows SDK. Nella fase iniziale, il programma di installazione verificherà se il pacchetto .NET Framework è installato sul sistema ultima versione(in questo momentoè 4,5). Se manca il pacchetto, verrà offerta l'installazione e la stazione verrà riavviata al termine. Subito dopo il riavvio, nella fase di autorizzazione dell'utente, il processo di installazione si avvia direttamente con Windows SDK.

Spesso, quando si scelgono tutti i componenti del pacchetto senza eccezioni, possono verificarsi errori durante il processo di installazione. In questo caso, si consiglia di installare i componenti in modo selettivo, il set minimo richiesto.

Al termine dell'installazione di Debugging Tools for Windows, il percorso dei file di debug con questo metodo di installazione sarà il seguente:

  • Versioni a 64 bit: C:\Programmi (x86)\Windows Kits\x.x\Debugger\x64
  • Versioni a 32 bit: C:\Programmi (x86)\Windows Kits\x.x\Debugger\x86

* dove x.x è una versione specifica del kit di sviluppo;
Abbiamo notato che le versioni 8 e successive, i percorsi di installazione sono notevolmente diversi da quelli classici per tutti versione precedente strumenti di debug?

Un vantaggio enorme questo metodo L'installazione degli strumenti di debug per Windows consiste nell'installare le versioni degli strumenti di debug per tutte le architetture contemporaneamente.

Installazione degli strumenti di debug per Windows dall'ISO di Windows SDK

Questo metodo prevede l'installazione degli strumenti di debug per Windows utilizzando l'immagine di installazione completa di Windows SDK (Software Developers Kit). Fino a un certo momento, scarica immagine iso per il sistema appropriato, è possibile visitare la pagina dell'archivio di Windows SDK. Tuttavia, al momento, è possibile ottenere un'immagine ISO dell'SDK eseguendo il web installer sdksetup.exe e selezionando la voce Scarica il kit di sviluppo software per Windows nella finestra iniziale del programma di installazione:

Come è stato scoperto, il metodo di installazione precedente che utilizzava il programma di installazione Web è piuttosto capriccioso e spesso fallisce. Su sistemi puliti si installa senza problemi, ma su sistemi sufficientemente caricati sorgono numerosi problemi. Se questo è il tuo caso, usa questo metodo.

Di conseguenza, nella pagina è necessario selezionare il kit di distribuzione richiesto, per me (e penso per molti) al momento è "Windows SDK per Windows 7 e .NET Framework 4" e fare clic un po 'più in basso sul collegamento "Ottieni immagine ISO del DVD" .

Quando lavori con il sito msdn.microsoft.com, ti consiglio di utilizzare un browser Internet Explorer, perché sono stati osservati casi di mancato funzionamento di prodotti concorrenti!

Di conseguenza, è necessario scegliere solo se necessario. Di solito il testimone di Debugging Tools for Windows è lo stesso del testimone del sistema. I miei sistemi di test sono per lo più a 64 bit, quindi nella maggior parte dei casi scarico l'immagine per il sistema a 64 bit GRMSDKX_EN_DVD.iso .
Quindi, dopo aver scaricato l'immagine, dobbiamo in qualche modo lavorare con l'immagine ISO esistente. Il modo tradizionale è, ovviamente, masterizzare un CD, ma questo è un metodo piuttosto lungo e talvolta costoso. Propongo di utilizzare utenze gratuite per creare dispositivi disco virtuale nel sistema. Personalmente, preferisco utilizzare il programma DEAMON Tools Lite per questo scopo. Qualcuno potrebbe avere altre preferenze, utilità più dirette o leggere, nel gusto e nel colore, come si suol dire .. Dopo aver installato DAEMON Strumenti Lite, faccio semplicemente doppio clic sul file immagine GRMSDKX_EN_DVD.iso e ho un nuovo CD virtuale nel mio sistema:

Quindi, facendo doppio clic, attivo il caricamento automatico e avvio l'installazione di Windows SDK:

Quando arriva il turno di selezionare i componenti da installare dall'elenco, disabilitiamo assolutamente tutte le opzioni tranne quelle contrassegnate nello screenshot. Questo ci aiuterà a evitare errori inutili ora.


Esatto, lo screenshot mostra due opzioni: "Windows Performance Toolkit" e "Strumenti di debug per Windows". Scegli entrambi, perché Windows Performance Toolkit tornerà sicuramente utile nel tuo lavoro! Inoltre, dopo aver fatto clic sul pulsante "Avanti", l'installazione continua modalità normale. E alla fine vedrai la scritta "Installazione completata".
Al termine dell'installazione, le directory di lavoro del kit Debugging Tools for Windows saranno le seguenti:

  • Per la versione x86:
  • Per la versione x64:

Questo completa l'installazione degli strumenti di debug per Windows.

Installazione degli strumenti di debug per Windows tramite file .msi

Se riscontri problemi durante l'installazione di Debugging Tools for Windows con due modi precedenti, ne abbiamo ancora uno in magazzino, il più affidabile e collaudato nel tempo, che ha aiutato, per così dire, più di una volta. Una volta, prima dell'integrazione in Windows SDK, gli strumenti di debug per Windows erano disponibili come programma di installazione .msi separato, che è ancora possibile trovare, ma già nelle viscere della distribuzione di Windows SDK. Poiché abbiamo già a portata di mano un'immagine ISO di Windows SDK, non possiamo montarla nel sistema, ma semplicemente aprirla con l'aiuto del noto Archiviatore WinRAR, beh, o qualsiasi altro prodotto che funzioni con i contenuti dei dischi ISO.

Dopo aver aperto l'immagine, dobbiamo andare nella directory "Setup" che si trova alla radice e quindi selezionare una delle directory:

  • Per installare la versione a 64 bit: \Setup\WinSDKDebuggingTools_amd64 e decomprimere il file dbg_amd64.msi da questa directory.
  • Per installare la versione a 32 bit: \Setup\WinSDKDebuggingTools e decomprimere il file dbg_x86.msi da questa directory.

Al termine dell'installazione, le directory di lavoro del kit Debugging Tools for Windows saranno le seguenti:

  • Per la versione x86: C:\Programmi (x86)\Strumenti di debug per Windows (x86)
  • Per la versione x64: C:\Programmi\Strumenti di debug per Windows (x64)

A questo punto, l'installazione di Debugging Tools for Windows può considerarsi completata.

Informazioni aggiuntive

Non so a cosa sia collegato, forse per mia disattenzione, ma dopo aver installato gli strumenti di debug per Windows, l'installer non imposta il percorso della directory con il debugger nella variabile Path system path. Ciò impone alcune restrizioni sull'esecuzione di varie attività di debug direttamente dalla console. Pertanto, in assenza di un percorso, scrivo io stesso nella finestra variabili ambientali percorso degli strumenti di debug:

  • C:\Programmi (x86)\Windows Kits\10\Debuggers\x86
  • C:\Programmi (x86)\Windows Kits\10\Debuggers\x64

* Nel tuo caso, i percorsi potrebbero differire sia a causa dell'uso di un sistema operativo di bit diverso, sia a causa dell'uso di un SDK di una versione diversa.

Le utilità del pacchetto Debugging Tools for Windows possono funzionare come applicazioni portatili, basta copiarle da sistema di lavoro Catalogare Kit degli strumenti per le prestazioni di Microsoft Windows e usalo come versione portatile su un server di produzione. Ma non dimenticare di tenere conto della capacità del sistema !! Anche se hai effettuato un'installazione completa del pacchetto su un sistema critico, puoi iniziare a lavorare subito dopo l'installazione, non è necessario riavviare.

Strumenti di debug per Windows

E ora, finalmente, ecco la composizione di Debugging Tools for Windows:

File Scopo
adplus.doc Documentazione per l'utilità ADPlus.
adplus.exe Un'applicazione console che automatizza il lavoro del debugger cdb per creare dump, file di registro per uno o più processi.
agestore.exe Un'utilità per rimuovere i file obsoleti dalla memoria utilizzata dal server dei simboli o dal server di origine.
breakin.exe Un'utilità che consente di inviare una combinazione di interruzioni personalizzata ai processi, simile alla pressione di CTRL+C.
cdb.exe Debugger della console in modalità utente.
convertstore.exe Utility per convertire i personaggi da 2 livelli a 3 livelli.
dbengprx.exe Ripiter (server proxy) per il debug remoto.
dbgpc.exe Un'utilità per la visualizzazione di informazioni sullo stato di una chiamata RPC.
dbgsrv.exe Il processo del server utilizzato per il debug remoto.
dbh.exe Un programma di utilità per la visualizzazione di informazioni sul contenuto di un file di simboli.
dumpchk.exe Utilità di verifica del dump. Un programma di utilità per controllare rapidamente un file dump.
dumpexam.exe Un programma di utilità per l'analisi di un dump della memoria. Il risultato viene restituito a %SystemRoot%\MEMORY.TXT .
gflags.exe Editor di flag di sistema globale. L'utilità gestisce le chiavi di registro e altre impostazioni.
i386kd.exe Involucro per kd. Una volta si chiamava kd per i sistemi attivi Basamento Windows NT/2000 per macchine x86? Probabilmente lasciato per motivi di compatibilità.
ia64kd.exe Involucro per kd. Era così che una volta veniva chiamato kd per i sistemi basati su Windows NT/2000 per macchine ia64? Probabilmente lasciato per motivi di compatibilità.
kd.exe Debugger della console in modalità kernel.
kdbgctrl.exe Strumento di gestione del debug del kernel. Utilità per la gestione e la configurazione della connessione di debug del kernel.
kdsrv.exe Server di connessione per KD. L'utilità è una piccola applicazione che viene eseguita e attende le connessioni remote. kd viene eseguito su un client e si connette a quel server per il debug remoto. Sia il server che il client devono provenire dallo stesso assembly degli strumenti di debug.
kill.exe Utilità per terminare i processi.
lista.exe Un'utilità per visualizzare il contenuto di un file sullo schermo. Questa utility in miniatura è stata fornita in bundle con uno scopo: visualizzare testo di grandi dimensioni o file di registro. Occupa poco spazio di memoria, in quanto carica il testo in parti.
logger.exe Un piccolo debugger che può funzionare solo con un processo. L'utilità inserisce logexts.dll nello spazio del processo, che registra tutte le chiamate di funzione e altre azioni del programma in esame.
logviewer.exe Un'utilità per la visualizzazione dei registri scritti dal debugger logger.exe.
ntsd.exe Debugger simbolico di Microsoft NT (NTSD). Un debugger identico a cdb, tranne per il fatto che crea una finestra di testo all'avvio. Come cdb, ntsd è in grado di eseguire il debug sia di applicazioni console che di applicazioni grafiche.
pdbcopy.exe Un programma di utilità per rimuovere i simboli privati ​​da un file di simboli, controllando i simboli pubblici inclusi in un file di simboli.
remote.exe Utility per il debug remoto e il controllo remoto di qualsiasi debugger di console KD, CDB e NTSD. Consente di eseguire tutti questi debugger della console in remoto.
rtlist.exe Visualizzatore attività remote. L'utilità viene utilizzata per elencare i processi in esecuzione tramite il processo del server DbgSrv.
symchk.exe Un'utilità per scaricare i simboli dal server dei simboli Microsoft e creare una cache dei simboli locale.
Symstore.exe Utilità per creare una rete o memoria locale personaggi (2 livelli/3 livelli). Un archivio di simboli è una directory specializzata su disco costruita secondo una certa struttura e contenente simboli. Nella directory principale dei simboli viene creata una struttura di sottocartelle con nomi identici ai nomi dei componenti. A sua volta, ognuna di queste sottocartelle contiene sottocartelle nidificate con nomi speciali ottenuti dall'hashing dei file binari. L'utilità symstore esegue la scansione delle cartelle dei componenti e aggiunge nuovi componenti all'archivio dei simboli in cui qualsiasi client può recuperarli. Si dice che il symstore venga utilizzato per ottenere simboli dall'archiviazione a 0 livelli e inserirli nell'archiviazione a 2 livelli/3 livelli.
tlist.exe Visualizzatore attività. Un'utilità per elencare tutti i processi in esecuzione.
umdh.exe Utilità dump heap in modalità utente. Un programma di utilità per analizzare gli heap di un processo selezionato. Consente di visualizzare varie opzioni per l'heap.
usbview.exe Visualizzatore USB. utilità da visualizzare Dispositivi USB collegato a un computer.
vmdemux.exe Demultiplatore macchina virtuale. Crea più pipe denominate per una singola connessione COM. I canali vengono utilizzati per eseguire il debug di vari componenti della macchina virtuale
windbg.exe Modalità utente e debugger in modalità kernel con GUI.

Android Debug Bridge (adb) è un programma di console che ti consentirà di eseguire il debug dispositivi mobili su Android così come emulatori.

Descrizione

Questa utility semplifica notevolmente l'installazione e il debug delle applicazioni e fornisce anche l'accesso alla shell Unix. Quest'ultimo può essere utilizzato per eseguire i comandi necessari sul dispositivo. Tra l'altro, il programma può essere utilizzato per sbloccare uno smartphone con la modalità debug abilitata. Vale la pena notare, tuttavia, che Android Debug Bridge supporta qualsiasi dispositivo Android, a condizione che la funzionalità necessaria non sia stata bloccata dal produttore.

Il programma comprende tre componenti:

  • Cliente. Funziona sul PC dello sviluppatore, invia comandi. Per chiamare il client, puoi utilizzare il comando appropriato nel terminale.
  • Demone (add). Esegue i comandi sul dispositivo. Lavora dentro sfondo su ogni dispositivo.
  • Server. Controlla l'interazione tra il client e il daemon. Viene eseguito in background sul computer di sviluppo.

Caratteristiche dell'ADB:

  • Visualizza un elenco di dispositivi connessi e supportati.
  • Visualizza i log.
  • Copia e trasferisci dati e file tra dispositivi.
  • Installazione e disinstallazione di applicazioni.
  • Cancellazione e sovrascrittura della sezione dati.
  • E anche molto altro.

Dal nostro sito puoi scaricare Android Debug Bridge gratuitamente, senza registrazione e SMS.

Screenshot