Hi, Aditya + Chirag
You have to make sure that everything is compiled and linked with debug option set (“-g” for GNU toolchains) and then apply “objdump” on an unstripped image, where the debug symbols are removed. The final boot image is usually stripped to keep it small. The unstripped image should also exist at the build location, and “objdump” output should look like this: … 80e804d8 <wait_on_value>: wait_on_value(): /home/.../syslib.c:60 80e804d8: e3a0c000 mov ip, #0 /home/.../syslib.c:59 80e804dc: e92d4010 push {r4, lr} …
Frank From: Aditya Kousik [mailto:adit267.kousik@...9...] Sent: Wednesday, July 23, 2014 1:28 PM To: Genode OS Framework Mailing List Subject: Re: Kernel Initialized in iMX6
Hello Stefan,
Three months ago, when I received a page fault (RM error), Norman suggested using objdump and I did it as follows with Genode toolchain: In var/run/printf: $ /usr/local/genode-gcc/arm-elf-eabi/bin/objdump -lSd image.elf | less
While we were able to find the conflicting address and IP, it was of no help because we couldn't trace it to the faulty line (primarily because we don't speak hexa). Is there a way of doing this, that is, Finding which line of code the IP is a part of?
Thanks Aditya.