[LLVMdev] ARM Debug support patch

Evan Cheng echeng at apple.com
Thu Dec 18 10:41:20 PST 2008


On Dec 12, 2008, at 1:07 PM, Mike-1 wrote:

>
> Hi Evans,
>
> Currently, we have not test all debug functionnalities, this will be  
> done
> with  the progress of our project.
> Could you explain more in details (by mail if possible) what is the  
> problem
> with aggregates and debugging ?
> Could you also provide C program or llvm source file that exposes this
> problem in order to see what we can do?

Try something simple like this:

#include <vector>
#include <iostream>
#include <queue>

int main() {
   std::priority_queue<int> q;
   int nums[10] = { 10, 6, 8, 3, 5, 1, 2, 7, 9, 4 };
   for (int i = 0; i < 10; ++i)
     q.push(nums[i]);
   while (!q.empty()) {
     std::cout << q.top() << " ";
     q.pop();
   }
   std::cout << '\n';
   return 0;
}

I can't examine nums[0] etc. under gdb. It doesn't even know nums is  
not a scalar.

>
>
> During our roadmap progress, FlexyCore will not hesitate to send  
> patches if
> needed.

Great. Thanks!

Evan
>
>
> Mikaël.
>
>
> Evan Cheng wrote:
>>
>>
>> On Dec 11, 2008, at 8:23 AM, Mike-1 wrote:
>>
>>>
>>> Thanks for the commit.
>>>
>>> FlexyCore works only on ARM EABI Linux target for now. This binary
>>> with
>>> Dwarf information could be debugged with a gdb-server 6.8 without
>>> problem on
>>> our side.
>>
>> Good to hear. Are you able to examine aggregates?
>>
>>>
>>>
>>> If you are working on ARM Linux target, could you send us LLVM
>>> source file,
>>> and gdb version ? But if you are using ARM Darwin as Anton suggest,
>>> we are
>>> unable to test this for now.
>>>
>>> We are open to help on this target, but we need some help to
>>> efficiently
>>> setup the right Darwin platform (pre-compile binary platform, qemu,
>>> boards
>>> ???).
>>
>> I am not sure how to build llvm-gcc with Mac OS X / arm support using
>> the open sourced llvm-gcc tree. It would be nice if someone can  
>> figure
>> that out and post instructions. I would very like to see qemu support
>> as well. I know Greg is also interested in this. Greg, any ideas?
>>
>>>
>>>
>>> Do not hesitate to contact us directly by mail on this topic.
>>
>> Thanks,
>>
>> Evan
>>
>>>
>>>
>>> Thanks,
>>>
>>> Mike.
>>>
>>>
>>> Evan Cheng wrote:
>>>>
>>>> I've committed the patch with some fixes. It allows ARM target to
>>>> generate Dwarf information. However, I did not have much luck
>>>> debugging llvm produced executables. I would appreciate it very  
>>>> much
>>>> if you can put the debug support to test and contribute more  
>>>> patches.
>>>>
>>>> Thanks,
>>>>
>>>> Evan
>>>>
>>>> On Dec 10, 2008, at 8:38 AM, Mike-1 wrote:
>>>>
>>>>>
>>>>> Hi all,
>>>>>
>>>>> FlexyCore, the company I am working for, use LLVM to generate  
>>>>> binary
>>>>> for ARM
>>>>> platform. We are very fulfilled with LLVM, and FlexyCore will be
>>>>> pleased to
>>>>> contribute on this software.
>>>>>
>>>>>
>>>>> We need debug support in ARM binary, but, in LLVM 2.4, this  
>>>>> support
>>>>> is not
>>>>> activated for ARM backend. Consequently, I made small  
>>>>> modifications
>>>>> in order
>>>>> to activate it (see the patch in attach file). My experience is  
>>>>> not
>>>>> enough
>>>>> on LLVM to know if it is the right way to solve the problem. But
>>>>> these
>>>>> modifications work on our use cases.
>>>>>
>>>>>
>>>>>
>>>>> Could you help us in order to check if these modifications are
>>>>> corrects or
>>>>> not ? If it is not the right way, could you explain us how to  
>>>>> solve
>>>>> this
>>>>> problem in the correct way, and we will be pleased to re-submit
>>>>> patch on
>>>>> this issue.
>>>>>
>>>>> I also use 'make check' command in order to verify that
>>>>> modifications does
>>>>> not generate regressions.
>>>>> Results are:
>>>>>
>>>>>  * Without ARM debug support
>>>>>    ===  Summary ===
>>>>>    # of expected passes        2726
>>>>>    # of unexpected failures    58
>>>>>    # of expected failures        6
>>>>>  * With ARM debug support
>>>>>    ===  Summary ===
>>>>>    # of expected passes        2727
>>>>>    # of unexpected failures    57
>>>>>    # of expected failures        6
>>>>>
>>>>> The extra success test is funccall.ll from test/DebugInfo. In  
>>>>> order
>>>>> to build
>>>>> successfully LLVM on ARM Linux EABI platform, I put in comment the
>>>>> usage of
>>>>> __register_frame into JIT.cpp because it seems that  
>>>>> __register_frame
>>>>> function is not into my libgcc. Could you mention which tools and
>>>>> versions
>>>>> that must to be used in order to build LLVM on ARM Linux EABI
>>>>> platform.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Mikaël.
>>>>>
>>>>> http://www.nabble.com/file/p20938563/arm-debug-from-llvm2-4.patch
>>>>> arm-debug-from-llvm2-4.patch
>>>>> -- 
>>>>> View this message in context:
>>>>> http://www.nabble.com/ARM-Debug-support-patch-tp20938563p20938563.html
>>>>> Sent from the LLVM - Dev mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> LLVM Developers mailing list
>>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://www.nabble.com/ARM-Debug-support-patch-tp20938563p20958834.html
>>> Sent from the LLVM - Dev mailing list archive at Nabble.com.
>>>
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/ARM-Debug-support-patch-tp20938563p20983684.html
> Sent from the LLVM - Dev mailing list archive at Nabble.com.
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list