Building Genode for Gumstix Overo platform

Michael Grunditz micken at ...96...
Thu Feb 16 16:56:56 CET 2012


On 02/16/2012 04:27 PM, Stefan Kalkowski wrote:
> On 16.02.2012 16:20, Michael Grunditz wrote:
>> On 02/16/2012 03:55 PM, Michael Grunditz wrote:
>>> On 02/16/2012 02:27 PM, Stefan Kalkowski wrote:
>>>> Hi Michael,
>>>>
>>>> On 16.02.2012 14:07, Michael Grunditz wrote:
>>>>> Hi
>>>>>
>>>>> I am also porting Genode to a new ARM board. Right now I am stuck with libc. It just halts with abort() as soon as it initiates. I cannot use GDB at this stage. Is there any other way of debuging this ? Adding prints to libc doesnt work since this problem is when libc init starts.
>>>> that sounds like you're getting an exception at that point.
>>>  I guessed that
>>>> If you're using the Fiasco.OC kernel together with Genode you can of
>>>> course use it's included kernel-debugger, which is quiet feature-rich.
>>>> You can invoke it by hand via the serial line by pressing escape, or you
>>>> put a 'enter_kdebug("WAIT")' snippet at appropriate places of your code
>>>> resp. libc initialization. Therefore you've to include the following before:
>>>>
>>>>   namespace Fiasco {
>>>>   #include <l4/sys/kdebug.h>
>>>>   }
>>>>
>>>> I fear the kernel-debugger's usage isn't that self-explanatory, but you
>>>> can start playing around after looking at the help-screen via '?'.
>>>> Something often useful is dumping the stacktrace of a thread via 'bt'.
>>>> To get meaningful symbols instead of plain addresses there is a small
>>>> tool in 'base-foc/contrib/kernel/fiasco/tool/backtrace'.
>>> Just so I understand this : backtrace is used like , cat bt.txt |
>>> ./backtrace /path/to/bin ?
>>> I am a little bit confused over which binary I should compare to , i.e.
>>> I don't get any match.
>>>
>> Ok so I got matches in the kernel. Thanks , at least it gives me a hint
>> on where to start looking.
> Sorry, I've missed you're debugging libc, which is a shared library, so
> its not in the binary anyway and backtrace won't work out of the box. I
> fear you've to do some steps manually: looking in which part (binary,
> ldso, libc, ...) the addresses from the stack lying in and using the
> offsets from their linking start-addresses to find the appropriate spot
> in the code.
>
> Regards
> Stefan
>
Maybe it actually went a little bit further then I thought ...

Ok , btw this is the output:

[init -> test-libc] C++ runtime: int
[init -> test-libc] void* abort(): abort called


I guess I get into c++ runtime, but what does "int" mean in this context ?
When I start test-libc in linux/genode I get : [init -> test-libc]
Starting ldso ... as the first output.

/Michael




More information about the users mailing list