Debugging without GDB - stack print?
christian.prochaska at genode-labs.com
Sat Aug 24 22:39:14 CEST 2019
the virtual memory address of your test application is 0x1000000, so the page fault IP address 0xa95b1 is not in the application
itself. You can get the memory addresses of shared libraries printed with
For example, with 'run/log' the output would look like:
[init -> test-log] 0x40000000 .. 0x4fffffff: stack area
[init -> test-log] 0x30000 .. 0x197fff: ld.lib.so
IP addresses below 0x1000000 usually belong to ld.lib.so, which is loaded first, whereas additional shared libraries usually reside
above the application.
Now you can find the source code location of the page fault with
$ genode-x86-objdump -dSCl debug/ld-sel4.lib.so | less
With ld.lib.so and the application image, you can look up the location with the page fault address directly, but with other shared
libraries you would need to subtract the load address first.
I wonder if your test application really needs to be started with Noux though. If it doesn't need fork() or execve(), it would
probably be easier not to use Noux.
More information about the users