debugging VFS plugins with monitor

Duss Pirmin pirmin.duss at gapfruit.com
Tue Sep 26 15:09:10 CEST 2023


Hello Genodians

I really like the new monitor component, it is really easy to use.

For a first real world application, I'm trying to debug why 
run/vfs_tresor_init fails after the update of openssl. For this I 
changed the run script so that I can run it on QEMU.

I can connect to the monitor as described in run/monitor_gdb.

What doesn't work with run/vfs_tresor_init is stopping the program 
execution at break-points. As this works in run/monitor_gdb I assume, 
that I have overlooked something in my configuration.

To automate startup of gdb I created the following 
/data/genode/build/x86_64/debug/.gdbinit:

! set non-stop      on
! set style enabled on
!
! set solib-search-path     /data/genode/build/x86_64/debug/
! set debug-file-directory  /data/genode/build/x86_64/debug/
!
! # connect to monitor running inside QEMU
! target extended-remote localhost:5555
!
! # add libraries/binary as needed (for symbols)
! add-symbol-file ld.lib.so                      0x30000
! add-symbol-file libc.lib.so                    0x10d43000
! add-symbol-file libcrypto.lib.so               0x1038000
! add-symbol-file vfs.lib.so                     0x10f5c000
! add-symbol-file vfs_jitterentropy.lib.so       0x10f51000
! add-symbol-file vfs_tresor_trust_anchor.lib.so 0x10f26000
!
! add-symbol-file vfs
!
! #set breakpoints
! b /data/genode/repos/os/src/server/vfs/main.cc:1000
! b /data/genode/repos/gems/src/lib/vfs/tresor_trust_anchor/vfs.cc:2022
!
! # select the first component that is monitored
! inferior 1

The addresses for the libraries I took from the ld_verbose output of a 
previous run.

I execute gdb as follows:
! cd /data/genode/build/x86_64/debug
! /usr/local/genode/tool/23.05/bin/genode-x86-gdb ld.lib.so

When I run info breakpoints I get the following output:
! 1    breakpoint     keep y   <PENDING>     /data/.../vfs/main.cc:1000
! 2    breakpoint     keep y   <PENDING>     /data/.../vfs.cc:2022

With run/monitor_gdb, it reports an address instead of <PENDING>.

Does anybody have an idea what I'm doing wrong? Or is there a limitation 
I'm not aware of?

Regards Pirmin



More information about the users mailing list