Sto utilizzando GDB per caricare un eseguibile su un dispositivo incorporato. Quando si carica il file eseguibile, GDB dice:Differenza tra "contatore programma" e "indirizzo iniziale"
xPSR: 0x01000000 pc: 0xf0094902 msp: 0x2001b508
Loading section .text, size 0x16240 lma 0x8000000
Loading section .data, size 0x8f0 lma 0x8016240
Start address 0x8000000, load size 92976
quanto ho capito, il pc
è il puntatore all'istruzione. Suppongo che "l'indirizzo iniziale" sia l'indirizzo iniziale per lo pc
. Tuttavia, nelle informazioni che GDB mi fornisce, l'indirizzo iniziale (0x8000000, che incidentalmente è lo stesso di .text
) è non uguale a pc
(0xf0094902).
Qual è la differenza tra pc
e l'indirizzo iniziale? Ha senso avere l'indirizzo iniziale uguale a .text
?
Dopo il caricamento, provare 'registri di informazioni' e controllare il valore di * pc *. Sospetto che @dwelch abbia ragione. I registri avranno qualcosa di significativo per la tua applicazione solo dopo aver eseguito 'run' su GDB. – karlphillip