Kód: Egész kijelölése
epc1=0x40201c2f epc2=0x00000000 epc3=0x00000000 excvaddr=0x456789ab depc=0x00000000Vegyünk egy programot, amelyik fagyizik:
Kód: Egész kijelölése
void setup() {
  Serial.begin(115200);
  Serial.println("Elindultam...");
  delay(2000);
}
void ittFogunkFagyizni(int szamlalo)
{
  if( szamlalo == 123 )
    *(int *)0x456789AB = 13;
}
int szamlalo = 0;
void loop() {
  ittFogunkFagyizni(szamlalo++);
}
Kód: Egész kijelölése
Exception (9):
epc1=0x40201c2f epc2=0x00000000 epc3=0x00000000 excvaddr=0x456789ab depc=0x00000000
ctx: cont 
sp: 3ffef1c0 end: 3ffef390 offset: 01a0
>>>stack>>>
3ffef360:  00000000 00000000 00000001 40202001  
3ffef370:  3fffdad0 00000000 3ffee358 4020202c  
3ffef380:  feefeffe feefeffe 3ffee370 40100114  
<<<stack<<<
- Keressük meg hogy az Arduino hová fordította a progamunkat (nálam sketch_dec03b.ino.elf a lefordított kód neve).
- Keressük meg az xtensa alkalmazásokat (xtensa-lx106-elf-addr2line)
Azért nem írok teljes elérési utat, mert ahány Arduino, annyi helyen lehet.
Miután megtaláltuk a lefordított elf fájlt és az xtensa binárist, adjuk ki a következő parancsot:
Kód: Egész kijelölése
> xtensa-lx106-elf-addr2line -f -C -e sketch_dec03b.ino.elf 0x40201c2f
ittFogunkFagyizni(int)
/home/ckarai/avr/arduino/projects/sketch_dec03b/sketch_dec03b.ino:10
A nagyon elvadult informatika mániások akár ki is listázhatják a kódot:
Kód: Egész kijelölése
>xtensa-lx106-elf-objdump -s -S sketch_dec03b.ino.elf
40201c24 <_Z17ittFogunkFagyiznii>:
void ittFogunkFagyizni(int szamlalo)
{
  if( szamlalo == 123 )
40201c24:       7ba032          movi    a3, 123
40201c27:       069237          bne     a2, a3, 40201c31 <_Z17ittFogunkFagyiznii+0xd>
    *(int *)0x456789AB = 13;
40201c2a:       fffd21          l32r    a2, 40201c20 <setup+0x34>
40201c2d:       d30c            movi.n  a3, 13
40201c2f:       0239            s32i.n  a3, a2, 0
40201c31:       f00d            ret.n



