Genode 16.05 Fault handler

Sebastian Sumpf Sebastian.Sumpf at ...1...
Tue Aug 30 14:36:34 CEST 2016


Hi Denis,

> Signal_handler<Main> sigh = {env.ep(), *this, &Main::_handle_fault};

The line above, creates the Signal_handler on the stack and destructs
this handler as soon as the 'Main' constructor is finished.

Therefore, 'sigh' should be a member of the 'Main' class.

Regards,

Sebastian

On 08/30/2016 02:10 PM, Denis Huber wrote:
> Dear Genode community,
> 
> in Genode 16.05 the old usage of Signal_receivers and Signal_contexts is 
> considered deprecated. Instead Signal_handler and Signal_transmitter 
> shall be used.
> 
> I am trying to use a Signal_handler as a fault handler for env's address 
> space. I wrote a short test to illustrate the problem [1].
> 
> [1] 
> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/c9a5a1f999a2ce1c6ffd5c316eee127c93d87308/src/test/fault_handler/main.cc
> 
> The output of [1] is as follows:
> "
> [init -> pf-signal_handler] --- pf-signal_handler started ---
> no RM attachment (WRITE pf_addr=1000 pf_ip=100061c from 2ae000)
> Genode::Pager_entrypoint::entry()::<lambda(Genode::Pager_object*)>: 
> Could not resolve pf=1000 ip=100061c
> "
> 
> The signal handler was registered correctly, because the line
> "
> Genode::Core_pd_session_component::submit(Genode::Capability<Genode::Signal_context>, 
> unsigned int)::<lambda(Genode::Signal_context_component*)>: invalid 
> signal-context capability
> "
> is missing. However, the method _handle_fault() is never entered. What 
> am I doing wrong?
> 
> 
> Kind regards,
> Denis
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 





More information about the users mailing list