Domanda

sto lavorando sulla scrittura di un sistema operativo e sto incorrere in problemi cercando di eseguire il debug il mio codice. Sto usando GDB per la connessione a GDB stub Bochs' a 'distanza' eseguire il debug mio kernel. Collegamento funziona bene, così come i simboli di carico debug dal file del kernel. Ho impostato un punto di interruzione per la funzione kmain, che si trova con successo, e le interruzioni di debugger correttamente (dentro la mia kernel). Tuttavia, non posso "step" o "next" attraverso il mio codice, nè GDB apparentemente può determinare quale riga di codice è la linea corrente.

Quando tento di "passo", ottengo il seguente messaggio: "Impossibile trovare limiti della funzione corrente". Questo è l'unico messaggio di errore ottengo in qualsiasi momento.

Il mio codice è stato compilato in GCC con il flag -g (ho provato altri tipi di informazioni di debug utilizzando le opzioni del CCG;. Nessuno ha funzionato) ho provato guardando attraverso il manuale di GDB, così come la ricerca per la risposta e io sono totalmente perplesso. Qualsiasi aiuto sarebbe fantastico.

Grazie!

È stato utile?

Soluzione

Bene, ho ottenuto il debug di lavoro, ma ho dovuto cambiare emulatori. Sono stato in grado di ottenere GDB di lavoro con Qemu, anche se ho anche avuto problemi a farlo. Per raggiungere GDB per la connessione al gdbserver Qemu, ho dovuto passare la seguente opzione per Qemu: "TCP -gdb :: 1234, ipv4". Mi ha portato per sempre a capirlo ... Debug funziona perfettamente ora!

Altri suggerimenti

Googling getta "Questo è perché quando è stato collegato al gdbserver, il sotto processo di debug non ha completato il codice C start-up" http: // www .cygwin.com / ml / gdb / 2005-03 / msg00237.html ... http://www.bravegnu.org/gnu-eprog/c-startup.html descrive il processo per quando si esegue la codifica per i dispositivi embedded, forse questo ti aiuterà?

Se si trova la risposta si prega di inviare qui come mi piacerebbe sapere che cosa è troppo la soluzione al problema.

Non so perché ma bochs con gdb-stub abilitati sembra essere esigente con le opzioni di configurazione. Su qualche sistema seguenti opzioni saranno romperlo: --enable-x86-64, --enable-VMX

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top