GDB

Software screenshot:
GDB
Dettagli del software:
Versione: 8.1.1 Aggiornato
Data di caricamento: 16 Aug 18
Sviluppatore: Stan Shebs
Licenza: Libero
Popolarità: 181

Rating: 3.5/5 (Total Votes: 2)

GDB (noto anche come debugger del progetto GNU) è un software open source e libero da riga di comando che consente agli utenti e agli sviluppatori di vedere cosa succede all'interno di un altro programma, mentre è eseguito, o perché un'applicazione si blocca in un determinato punto.


Caratteristiche a colpo d'occhio

Le caratteristiche principali includono quattro diverse tecniche per aiutare gli sviluppatori a cogliere bug in atto, avviare un'applicazione e specificare qualsiasi cosa che possa influenzare il suo comportamento, fare fermare un programma su determinate condizioni, esaminare i log quando l'applicazione si blocca, cambiare gradualmente le cose in un programma per provare a correggere gli effetti di un problema e continuare imparando un altro bug. Supporta anche il debug di programmi scritti in una vasta gamma di linguaggi di programmazione, inclusi C, C ++, Pascal , Ada, Objective-C e molti altri.

È un'applicazione di riga di comando

Il debugger del Progetto GNU è sempre un'applicazione di riga di comando. Per usarlo, devi eseguire il & ldquo; gdb & rdquo; comando in un emulatore di terminale, quindi esegui & ldquo; aiuto & rdquo; comando (senza virgolette) a prompt gdb. Inoltre, puoi anche digitare & ldquo; help all & rdquo; comando per visualizzare un elenco di tutti i comandi, digitare "help" seguito dal nome del comando per visualizzare la documentazione completa, digitare "help" seguito da un nome di classe per visualizzare un elenco di comandi in quella classe, digitare "apropos word" per cercare per i comandi relativi a "word."


Elenco di classi di comandi

Dopo aver digitato l'opzione & ldquo; & rdquo; comando come descritto sopra, vedrai una lista di classi di comandi, inclusi gli alias (visualizza gli alias di altri comandi), i punti di interruzione (ferma il programma in determinati punti), i dati (per esaminare i dati), i file (per esaminare i file) , interni (comandi di manutenzione), oscuri (caratteristiche oscure), in esecuzione (per l'esecuzione del programma), stack (per esaminare lo stack), stato (per richieste di stato), supporto (per strutture di supporto), tracepoints (per l'esecuzione del programma di tracciamento senza arresto del programma) e definiti dall'utente (comandi definiti dall'utente).

Piattaforme hardware e sistemi operativi supportati

GDB è stato progettato dall'offset per essere un'applicazione multipiattaforma, in esecuzione su sistemi operativi mainstream come Microsoft Windows e alcune delle più popolari varianti Linux / UNIX. È supportato su piattaforme hardware a 32 e 64 bit.

Novità in questa versione:

  • PR gdb / 22824 (descrizione fuorviante della nuova funzione Python rbreak nel file NEWS di GDB 8.1)
  • PR gdb / 22849 (ctrl-c non funziona nel telecomando esteso)
  • PR gdb / 22907 ([Regressione] gdbserver non funziona con i binari dei soli nomi dei file)
  • PR gdb / 23028 (disassemblaggio incoerente di vcvtpd2dq)
  • PR gdb / 23053 (Fix -D_GLIBCXX_DEBUG regressione gdb-add-index)
  • PR gdb / 23127 ([AArch64] GDB non può essere utilizzato per il debug di software che utilizza indirizzi virtuali elevati)
  • Server PR / 23158 (gdbserver non funziona più su Windows)
  • Punti di interruzione PR / 23210 ([8.1 / 8.2 Regressione] Indirizzo del punto di interruzione del binario regolato da 0xf7fe7dd3 a 0xfffffffff7fe7dd3)

Novità in nella versione 8.1:

  • I breakpoint sulle funzioni C ++ sono ora impostati su tutti gli ambiti per impostazione predefinita (& quot; wild & quot; matching);
  • Supporto per l'inserimento di punti di interruzione su funzioni contrassegnate con tag ABI C ++;
  • Emulazione aritmetica in virgola mobile durante la valutazione dell'espressione (richiede MPFR 3.1 o successivo);
  • Vari miglioramenti di Python Scripting;
  • Supporto per ruggine migliorato; in particolare, gli oggetti Trait possono ora essere ispezionati durante il debug del codice Rust;
  • GDB non fa più ipotesi sul tipo di simboli senza eseguire il debug delle informazioni per evitare di produrre risultati errati e spesso confusi;
  • I comandi "attiva" e "disabilita" ora accettano un intervallo di posizioni dei punti di interruzione;
  • Nuovo comando 'starti' per avviare il programma alla prima istruzione;
  • Nuovo comando 'rbreak' per inserire un numero di punti di interruzione tramite un pattern di espressioni regolari (richiede Python);
  • Il comando 'ptype' ora supporta la stampa dell'offset e della dimensione dei campi in una struttura;
  • Il comando 'gcore' ora supporta il dumping di tutti i mapping della memoria (opzione '-a' della riga di comando);
  • Nuove scorciatoie per la modalità single-key TUI: "i" per stepi e "o" per nexti;
  • Miglioramenti a GDBserver:
  • Supporto per la trasmissione di variabili di ambiente a GDBserver;
  • Supporto per l'avvio di processi inferiori con una directory di lavoro iniziale specificata;
  • Sui sistemi Unix, supporto per l'espansione globbing e sostituzione variabile di argomenti della riga di comando inferiori;
  • Vari miglioramenti del completamento;
  • Il comando usato per compilare e iniettare codice con il comando 'compile' ora è configurabile;
  • Nuova opzione da riga di comando --readnever per accelerare l'avvio di GDB quando non è necessario eseguire il debug delle informazioni;
  • Supporto per le seguenti nuove configurazioni native:
  • FreeBSD / aarch64 (aarch64 * - * - freebsd *);
  • FreeBSD / arm (arm * - * - freebsd *);
  • Supporto per i seguenti nuovi obiettivi:
  • FreeBSD / aarch64 (aarch64 * - * - freebsd *);
  • FreeBSD / arm (arm * - * - freebsd *);
  • OpenRISC ELF (or1k * - * - elf)
  • Rimosso il supporto per i seguenti target e configurazioni native:
  • Solaris2 / x86 (i? 86 - * - solaris2. [0-9]);
  • Solaris2 / sparc (sparc * - * - solaris2. [0-9]);

Novità della versione nella versione:

  • La creazione di questa versione di GDB richiede ora i seguenti strumenti:
  • Un compilatore C ++-11 (ad esempio, GCC 4.8 o successivo);
  • GNU crea la versione 3.81 o successiva.
  • Le modifiche a questa versione includono:
  • C ++: supporto per i riferimenti rvalue
  • Miglioramenti allo scripting in Python:
  • Nuove funzioni per avviare, arrestare e accedere a una registrazione btrace in corso.
  • Supporto per il riferimento del valore di riferimento in gdb.Type.
  • Interprete dei comandi GDB:
  • I comandi utente ora accettano un numero illimitato di argomenti.
  • Il & quot; eval & quot; il comando ora espande gli argomenti definiti dall'utente.
  • Supporto per la versione 5 di DWARF
  • (nota che il suo indice .debug_name non è ancora supportato).
  • Miglioramenti GDB / MI:
  • Nuovo comando -file-list-shared-libraries per elencare le librerie condivise nel programma.
  • Nuovo comando -target-flash-erase, per cancellare la memoria flash.
  • Supporto per nativi FreeBSD / mips (mips * - * - freebsd)
  • Supporto per i seguenti obiettivi:
  • Synopsys ARC (arc * - * - elf32)
  • FreeBSD / mips (mips * - * - freebsd)
  • Miglioramenti vari:
  • Il reindirizzamento della riga di comando ora è supportato sugli host MS-Windows.
  • Supporto per i nomi dei thread su MS-Windows.
  • Supporto per il registro PKU su GNU / Linux.
  • Supporto per le descrizioni di Target su sparc32 e sparc64.
  • Nuovo comando GDB / CLI per cancellare la memoria flash
  • rdrand e rdseed istruzioni registrano / riproducono il supporto.
  • Il supporto per le seguenti funzionalità è stato rimosso:
  • Supporto per i programmi Java compilati con gcj
  • Supporto per le seguenti configurazioni:
  • FreeBSD / alpha (alpha * - * - freebsd *)
  • GNU / kFreeBSD / alpha (alpha * - * - kfreebsd * -gnu)

Novità nella versione 7.9.1:

  • Creazione PR / 18033 (commento in stile C ++ utilizzato in gdb / iq2000-tdep.c e gdb / compile / compile - *. c)
  • Costruisci PR / 18298 (il comando & quot; compila & quot; non riesce a trovare il compilatore se gli strumenti sono configurati con terzina anziché quadrupla)
  • PR tui / 18311 (SEGV casuale durante la visualizzazione dei registri in modalità TUI)
  • PR python / 18299 (eccezione durante la registrazione di una stampante carina globale in modalità dettagliata)
  • PR python / 18066 (argomento & quot; parola & quot; sembra rotto in Command.complete (testo, parola))
  • PR pascal / 17815 (Corretto il comportamento pascal per i campi di classe con testcase)
  • PR python / 18285 (ptype expr-with-xmethod causa SEGV)

Novità in nella versione 7.9:

  • Miglioramenti allo scripting in Python.
  • Compilazione del codice sorgente e iniezione nella parte inferiore.
  • Nuovi comandi, opzioni, variabili di convenienza / opzioni.
  • Supporto SDE MIPS (mips * -sde * -elf *).
  • Migliore gestione dei segnali durante il debug dei programmi con thread.

Novità nella versione 7.8.2:

  • PR symtab / 17642 ([7.8 regression] internal -error: resolve_dynamic_struct: Asserzione `TYPE_NFIELDS (type) & gt; 0 'fallita.)
  • PR binutils / 17677 (_bfd_elf_get_synthetic_symtab eseguito in complessità O (n ^ 2))
  • PR gdb / 16215 (SPARC: impossibile calcolare CFA per questo frame)
  • PR gdb / 17525 (target-async: comandi breakpoint non eseguiti quando il programma viene eseguito dallo script -x)
  • PR cli / 17828 ([7.8 regression] -batch -ex r break terminal)

Novità nella versione 7.8.1:

  • PR python / 17364 (Richiede migliori nomi di stampanti in bound_registers.py)
  • Creazione PR / 17104 (CFLAGS = & quot; -Wall -Wextra & quot; gdb / confgure --with-babeltrace fallisce)
  • PR gdb / 17345 (babeltrace (1.1.2 e successive) si lamenta dei dati ctf generati da GDB)
  • Creazione PR / 17298 (gcore: impossibile ottenere i registri: nessun processo di questo tipo)
  • PR python / 17342 (Xmethod Python non è compatibile con Python 3)
  • PR python / 17355 (Crash su filtri frame Python con arg illeggibile)
  • PR guile / 17367 (calcolo del percorso della gilda errato quando lo script pkg-config è fornito come argomento di --with-guile)
  • PR gdb / 17247 (gdb si blocca sull'app multi-thread)
  • PR gdb / 17347 (Regressione: GDB interrotto in esecuzione con processo allegato)
  • PR gdb / 17407 (Lettura regressione per Linux vDSO)
  • Server PR / 17457 (aarch64 / gdbserver: visualizzazione dei registri in virgola mobile errata)
  • Server PR / 17487 (stato- & gt; dr_control_mirror == 0 asserzione fallita in gdbserver su Windows)
  • PR gdb / 17472 (con annotazioni, immissione mentre si esegue in foreground arresti readline / gdb)
  • PR gdb / 17471 (ripetendo un comando di sfondo lo rende in primo piano)
  • PR cli / 17300 (arresto in modalità non-stop con continue -a & (readline_callback_read_char () chiamato senza gestore!))
  • PR python / 17372 (Python si blocca durante la visualizzazione di help ())
  • PR python / 17408 (../../gdb/infrun.c:5256: errore interno: switch_back_to_stepped_thread: Asserzione `! schedlock_applies (1) 'failed.)

Novità nella versione 7.8:

  • Supporto per script Guile
  • Miglioramenti allo scripting in Python.
  • Nuovi comandi, opzioni, variabili di convenienza / opzioni.
  • Miglioramenti al protocollo remoto e GDBserver.
  • Nuove configurazioni di destinazione (PowerPC64 GNU / Linux little-endian).
  • miglioramenti btrace
  • Supporto array di lunghezza variabile ISO C99
  • Le & quot; sezioni di confronto & quot; il comando ora funziona su tutti i target.
  • Il & quot; target nativo & quot; il comando ora si collega al target nativo.

Novità della versione nella versione 7.7:

  • Supporto avanzato per lo scripting Python.
  • Alcuni miglioramenti in C ++.
  • Nuovi comandi, opzioni, variabili di convenienza / opzioni.
  • Diversi nuovi comandi e miglioramenti GDB / MI.
  • Miglioramenti al protocollo remoto e GDBserver.
  • Nuove configurazioni di destinazione (Nios II, TI MSP430).
  • GDB Windows x64 supporto per lo svolgimento dei dati.
  • Supporto per sonde SystemTap SDT su AArch64 GNU / Linux.
  • Supporto CTF (Common Trace Format).
  • Nuovi script gcore e gdb-add-index.sh.
  • Supporto migliorato *: supporto record / replay di linea.
  • Rimosso il supporto per a.out configurazioni obsolete di NetBSD e OpenBSD. Le varianti ELF di queste configurazioni sono mantenute supportate.
  • Il & quot; set | show remotebaud & quot; i comandi sono deprecati a favore di & quot; show | show serial baud & quot;.

Novità nella versione 7.6.2:

  • Breakpoint PR / 16251 (errore di breakpoint hardware AArch64 dopo forcella)
  • PR gdb / 16303 (GDB 7.6.1 non funziona con binutils 2.24 su MIPS16 e microMIPS)

Novità nella versione 7.6.1:

  • PR tdep / 15420 (Impossibile eseguire il debug di programmi con thread sulle versioni più recenti di x86-solaris - Solaris 10, Update 10 o versioni successive)
  • PR remote / 15455 (QTro remote packet broken)
  • PR build / 15476 (Errore di compilazione a causa di un enum incompleto in utils.h)
  • Server PR / 15594 (il supporto tls in gdbserver 64x32 x86 non estende l'indirizzo a 64 bit)
  • Server PR / 15075 (dprintf inteferisce con & quot; successivo & quot;)
  • Server PR / 15434 (dprintf utilizza un "continuo" sincrono anche in modalità non-stop)
  • PR tui / 14880 (nei layout di registri divisi, i risultati aumentano nell'errore di asserzione in value.c)
  • PR c ++ / 15519 (GDB 7.6 è 94x più lento di GDB 7.5.1 utilizzando un determinato file core)
  • PR gdb / 15837 (GDB stampa i valori di immissione per le variabili locali)
  • PR gdb / 15415 (gdb risolve collegamenti simbolici quando si passa argv [0])
  • PR cli / 15603 (CTRL-C non può più interrompere inferiore)
  • PR gdb / 15604 (gdbserver socket leak 7.5 regression)

Novità in nella versione 7.5:

  • Supporto per la lingua.
  • Nuovi target (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64).
  • Ulteriori miglioramenti allo scripting Python.
  • Supporto per sonde SDT (Tracciamento statico definito) con sonde SystemTap.
  • Miglioramenti al server GDB (connessioni stdio, valutazione lato destinazione delle condizioni del punto di interruzione, miglioramenti del protocollo remoto).
  • Altri miglioramenti vari (possibilità di fermarsi quando una libreria condivisa viene caricata / scaricata, dynamicf dinamica, ecc.)
  • Reverse debug su ARM.
  • Il binario & quot; gdbtui & quot; è stato abbandonato e non può più essere costruito. Utilizza & quot; gdb -tui & quot; invece.

Novità nella versione 7.4:

  • I linespec ambigui vengono ora gestiti in modo più coerente.
  • Le funzioni e i file non interessanti possono ora essere saltati quando si fa un passo con la & quot; funzione di salto & quot; e & quot; salta file & quot; comandi.
  • Sono stati aggiunti i comandi per l'impostazione e il raggiungimento del limite massimo di lunghezza di un punto di controllo hardware di destinazione remoto.
  • Lo scripting in Python è stato notevolmente migliorato.
  • Sono stati apportati molti altri miglioramenti, correzioni di bug e modifiche generali.

Novità in nella versione 7.1:

  • Supporto per nuovi obiettivi (incluso un simulatore):
  • Xilinx MicroBlaze
  • Renesas RX
  • Le principali novità sono:
  • Debug multiprogramma, che consente al debugger di controllare più di
  • un programma nella stessa sessione GDB.
  • Debugging PIE (Position Independent Executable)
  • Sono inoltre disponibili numerosi miglioramenti e correzioni di bug, tra cui:
  • Il supporto per Python è stato esteso.
  • Miglioramenti del supporto C ++ (spazio dei nomi, operatori di cast, correzioni di bug)
  • Miglioramenti al supporto di Tracepoint.
  • Miglioramenti del registro dei processi (salvataggio / ripristino del registro di esecuzione, hardware
  • supporto watchpoint).
  • Miglioramenti del protocollo remoto (debug del kernel di Linux, nuovi pacchetti
  • per il supporto del tracciamento)

Programmi simili

Clint
Clint

2 Jun 15

YARI
YARI

12 May 15

xtrace
xtrace

11 May 15

WingDBG
WingDBG

20 Feb 15

Altri software di sviluppo Stan Shebs

Xconq
Xconq

2 Jun 15

Commenti a GDB

I commenti non trovato
Aggiungi commento
Accendere le immagini!