[GDB] No symbol table is loaded

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
costa90sm
Prode Principiante
Messaggi: 10
Iscrizione: sabato 18 maggio 2013, 17:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.10 i686

[GDB] No symbol table is loaded

Messaggio da costa90sm »

Ciao, ho un problema per il debugging su una macchina remota. Ora mi spiego meglio.
Devo fare il debug di un SO emulato con qemu, finché svolgo il lavoro sul mio pc funziona tutto bene, il problema sorge quando provo a fare la stessa cosa dopo essermi collegato con l'host remoto:

Codice: Seleziona tutto

ssh utente@host
poi (dopo aver avviato qemu con il tag -s) avvio gdb e faccio il target remote:

Codice: Seleziona tutto

(gdb) target remote localhost:1234
A questo punto se faccio continuare l'esecuzione tutto fila liscio, mentre se provo a mettere dei breakpoint succede questo:

Codice: Seleziona tutto

(gdb) b sistema/sistema.S
No symbol table is loaded. Use the "file" command.
e se provo a seguire il consiglio:

Codice: Seleziona tutto

(gdb) file test
Reading symbols from /usr/bin/test...Reading symbols from /usr/lib64/debug/usr/bin/test.debug...(no debugging symbols found)...done.
(no debugging symbols found)...done.
Il problema dovrebbe risolversi quindi importando le informazioni di debug. Come posso fare? Grazie.
costa90sm
Prode Principiante
Messaggi: 10
Iscrizione: sabato 18 maggio 2013, 17:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.10 i686

Re: [GDB] No symbol table is loaded

Messaggio da costa90sm »

Forse il problema si risolve caricando il file dei simboli con

Codice: Seleziona tutto

(gdb) symbol-file file.img
con file.img che dovrebbe essere il file ottenuto dopo il linking.

Ora però non so dove trovarlo. Posto il file run che è quello con cui viene lanciato qemu che emula il SO:

Codice: Seleziona tutto

QEMU=${QEMU:-/usr/local/bin/qemu-system-i386}
CEHDPATH=${CEHDPATH:-$HOME/.CE/hd.img}

DEBUG=
if [ "$1" == -g ]; then
	DEBUG="-s -S"
	shift
fi
	
trap 'stty sane' exit

output="-serial stdio"
if [ "$AUTOCORR" == 1 ]; then
	output=-nographic
fi


"$QEMU" $DEBUG		      \
	-kernel build/sistema \
	-hda .swap	      \
	$output 	      \
	-no-reboot 	      |
util/show_log.pl
Credevo che fosse hd.img ma se eseguo il comando non me lo trova:

Codice: Seleziona tutto

symbol-file $HOME/.CE/hd.img
e non lo vedo nemmeno cercandolo con ls.
Qui sapreste aiutarmi?
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti