CC core dumping with CLANG 3.7 on armv5 - DREAMPLUG

Mattia Rossi mattia.rossi.mailinglists at gmail.com
Mon Oct 26 09:26:56 UTC 2015



Am 23.10.2015 um 20:30 schrieb Ian Lepore:
> On Thu, 2015-10-22 at 14:43 +0200, Mattia Rossi wrote:
>> Am 22.10.2015 um 14:40 schrieb Mattia Rossi:
>>>
>>> Am 22.10.2015 um 13:14 schrieb Konstantin Belousov:
>>>> On Thu, Oct 22, 2015 at 11:47:28AM +0200, Mattia Rossi wrote:
>>>>>> You may disassemble the instruction at the address, and print
>>>>>> the
>>>>>> content
>>>>>> of registers:
>>>>>> (gdb) disassemble *0x01eb0868-8,0x01eb0868+8
>>>>>> (gdb) info registers
>>>>>>
>>>>>> If the cause of your issue is weird codegeneration on ARMv5,
>>>>>> it
>>>>>> might be
>>>>>> seen from the data above.  On the other hand, this would not
>>>>>> help
>>>>>> if the
>>>>>> issue is algorithmic.  I am afraid there is not much more to
>>>>>> suggest.
>>>>> (gdb) disassemble *0x01eb0868-8,0x01eb0868+8
>>>>> No function contains specified address.
>>>> Apparently correct syntax is
>>>> disassemble 0x01eb0868-8 0x01eb0868+8
>>> (gdb) bt
>>> #0  0x01eb0868 in ?? ()
>>> (gdb) disassemble 0x01eb0868-8 0x01eb0868+8
>>> Dump of assembler code from 0x1eb0860 to 0x1eb0870:
>>> 0x01eb0860:     add     r12, r12, #1    ; 0x1
>>> 0x01eb0864:     and     r7, r0, r3
>>> 0x01eb0868:     ldr     r1, [r10, r7, lsl #2]
>>> 0x01eb086c:     cmp     r1, #0  ; 0x0
>>> End of assembler dump.
>>> (gdb) info registers
>>> r0             0x1e53b  124219
>>> r1             0x6a     106
>>> r2             0xc3c3c3c6       -1010580538
>>> r3             0x5a5a5a59       1515870809
>>> r4             0x3      3
>>> r5             0x1fd9f83        33398659
>>> r6             0x1e53b  124219
>>> r7             0x4019   16409
>>> r8             0x22a1708c       581005452
>>> r9             0xffffffff       -1
>>> r10            0x5a5a5a5a       1515870810
>>> r11            0xbfbfeb70       -1077941392
>>> r12            0x1      1
>>> sp             0xbfbfeb48       -1077941432
>>> lr             0x8f5c   36700
>>> pc             0x1eb0868        32180328
>>> fps            0x0      0
>>> cpsr           0x60000010       1610612752
>>> (gdb)
>>>
>>> Still I can't tell anything from that :-/ - way too low level for
>>> me
>> Btw. I'm currently using a helloworld program for testing:
>>
>> root at dreamplug:~ # cat helloworld.c
>> /* Hello World program */
>>
>> #include<stdio.h>
>>
>> main()
>> {
>>       printf("Hello World");
>>
>>
>> }
>>
> I think the degenerate testcase for this is just typing 'cpp', and the
> first line of output when you do might be a clue...
>
> root at dpnand:/root # cpp
> error: no handler registered for module format 'raw'
> fatal error: error in backend: unknown module format
> cpp: error: clang frontend command failed with exit code 70 (use -v to see invocation)
> FreeBSD clang version 3.7.0 (tags/RELEASE_370/final 246257) 20150906
> Target: arm--freebsd11.0-gnueabi
> Thread model: posix
> cpp: note: diagnostic msg: PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
> cpp: note: diagnostic msg: Error generating preprocessed source(s) - ignoring input from stdin.
> cpp: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
>
> With a quick glance at the code involved, that "no handler" message
> happens when it can't find the requested module type in a container of
> module handlers.  But the default constructor for the container
> automatically adds the handler for 'raw' so not finding it seems
> insane.  I don't know how to proceed from here in debugging.
>   Unfortunately, we have no functional arm emulator (only armv6 and the
> problem doesn't happen there) so this has to be debugged on real
> hardware I guess.
I'd love to do some more debugging to get this fixed. Is there a quick 
way to just get debugging symbols in CLANG instead of having to compile 
world with it (and running out of swap space?)

Cheers,

Mat


More information about the freebsd-arm mailing list