Während meines Debugging habe ich die folgende Fehlermeldung erhalten.Was bedeuten die Elemente in der Fehlermeldung "Alignment Trap"?
Alignment trap: my_main (29858) PC=0x00170ad8 Instr=0xe5960008 Address=0x00f28daa FSR 0x0f3
Ich habe ein bisschen herum geschaut und eine Menge Informationen zu diesem real-time embedded website gefunden. So jetzt weiß ich, was 10 und Instr
bezieht sich auf, aber ich habe immer noch nichts über die Address
und FSR
Teil gefunden.
Was ist FSR
? Auf welche Adresse bezieht sich Address
? Laut proc/xxxx/maps
ist diese Adresse sogar außerhalb des Rahmens meines Programms. Weiß jemand, was die letzten beiden Punkte bedeuten? Ich brauche Informationen darüber, um dieses Ausrichtungsproblem zu lösen.
MAP Ausgang
00008000-001fe000 r-xp 00000000 03:02 16204 /home/myuser/my_main
00205000-00248000 rw-p 001f5000 03:02 16204 /home/myuser/my_main
00248000-00299000 rwxp 00248000 00:00 0
40000000-40018000 r-xp 00000000 03:01 2095 /lib/ld-2.3.3.so
40018000-4001b000 rw-p 40018000 00:00 0
4001f000-40020000 r--p 00017000 03:01 2095 /lib/ld-2.3.3.so
40020000-40021000 rw-p 00018000 03:01 2095 /lib/ld-2.3.3.so
40021000-40023000 r-xp 00000000 03:01 15724 /usr/lib/libem7.so.1.0.1
40023000-40029000 ---p 00002000 03:01 15724 /usr/lib/libem7.so.1.0.1
40029000-4002b000 rw-p 00000000 03:01 15724 /usr/lib/libem7.so.1.0.1
4002b000-40031000 r-xp 00000000 03:01 2057 /lib/tls/librt-2.3.3.so
40031000-40033000 ---p 00006000 03:01 2057 /lib/tls/librt-2.3.3.so
40033000-40038000 rw-p 00000000 03:01 2057 /lib/tls/librt-2.3.3.so
40038000-40039000 r--p 00005000 03:01 2057 /lib/tls/librt-2.3.3.so
40039000-4003a000 rw-p 00006000 03:01 2057 /lib/tls/librt-2.3.3.so
4003a000-4004a000 r-xp 00000000 03:01 2060 /lib/tls/libpthread-2.3.3.so
4004a000-40051000 rw-p 00008000 03:01 2060 /lib/tls/libpthread-2.3.3.so
40051000-40052000 r--p 0000f000 03:01 2060 /lib/tls/libpthread-2.3.3.so
40052000-40053000 rw-p 00010000 03:01 2060 /lib/tls/libpthread-2.3.3.so
40053000-40055000 rw-p 40053000 00:00 0
40055000-4010e000 r-xp 00000000 03:01 15703 /usr/lib/libstdc++.so.6.0.3
4010e000-40115000 ---p 000b9000 03:01 15703 /usr/lib/libstdc++.so.6.0.3
40115000-40119000 rw-p 000b8000 03:01 15703 /usr/lib/libstdc++.so.6.0.3
40119000-4011f000 rw-p 40119000 00:00 0
4011f000-401b7000 r-xp 00000000 03:01 2076 /lib/tls/libm-2.3.3.so
401b7000-401be000 rw-p 00090000 03:01 2076 /lib/tls/libm-2.3.3.so
401be000-401bf000 r--p 00097000 03:01 2076 /lib/tls/libm-2.3.3.so
401bf000-401c0000 rw-p 00098000 03:01 2076 /lib/tls/libm-2.3.3.so
401c0000-401c8000 r-xp 00000000 03:01 2005 /lib/libgcc_s.so.1
401c8000-401c9000 rw-p 00008000 03:01 2005 /lib/libgcc_s.so.1
401c9000-402cb000 r-xp 00000000 03:01 2078 /lib/tls/libc-2.3.3.so
402cb000-402d1000 ---p 00102000 03:01 2078 /lib/tls/libc-2.3.3.so
402d1000-402d2000 rw-p 00100000 03:01 2078 /lib/tls/libc-2.3.3.so
402d2000-402d4000 r--p 00101000 03:01 2078 /lib/tls/libc-2.3.3.so
402d4000-402d6000 rw-p 00103000 03:01 2078 /lib/tls/libc-2.3.3.so
402d6000-402d8000 rw-p 402d6000 00:00 0
402d8000-402e5000 rw-s 00000000 00:07 0 /SYSV12345678 (deleted)
402e5000-402e6000 ---p 402e5000 00:00 0
402e6000-402f5000 rwxp 402e6000 00:00 0
403c1000-4049d000 rw-p 403c1000 00:00 0
7efeb000-7f000000 rwxp 7efeb000 00:00 0
Noch eine Sache, woher wissen Sie, dass "Instr = 0xe5960008" "ldr r0, [r6, # 8]" ist. Der Objdump sagt es tatsächlich. –
@NazeKimi: Ich habe es gerade entschlüsselt, indem ich mich auf das ARM-Referenzhandbuch bezog. –