Hi,
On Friday, 21. May 2010 16:43:15 Christian Prochaska wrote:
Hi,
I think we probably need a different malloc() implementation (or a Genode-specific __cxa_allocate_exception() implementation) in the cxx lib that doesn't cause exceptions to be thrown, because what your stack trace shows is that with the current implementation we can get an exception thrown inside init_exception_handling() itself and also potentially infinite recursive calls of malloc() .
Of course, you're right with your diagnosis, regarding the exception thrown during exception initialization - I was blind ;-)
Nevertheless, I don't think Genode needs another malloc implementation here.
In Genode, the child process starts naked, meaning it has no resources (except: bss, data and text segment and a capability to communicate to it's parent) if it wants some resource or service it has to open a session (e.g.: a RAM session) and therefore needs to talk to it's parent. If the initial communication to it's parent fails, this is the real problem, which has to be solved.
As far as I understood Steffen correctly, he ports Genode to a new platform and it looks like init's first IPC call to it's parent (core) fails, probably because your platform's IPC code doesn't work fully correct (e.g. some trouble with the parent-capability given to init?).
regards Stefan