[LLVMdev] Getting llc to emit debug info into a obj file from source .ll

Peter Mackay
Mon, 11 May 2015 14:38:36 -0000

Thanks to all those who replied. Sorry for the delay in my getting
back to the thread.

I was able to somewhat work around the problem of having no debug info
by first compiling the IR to an assembly file using the -S flag, and
then assembling that to an object file using -c.

Obviously the debug info corresponds to the assembly language file,
but for my purposes this is actually OK. The IR file would be better,
but there's not much difference in readability for my project as the
labels and such are visible in the asm file.

The debug info does indeed appear in sections named .debug_*.

Currently the debug info only seems to work with Xcode, but it is
there. I will investigate how to get the debug info into a format that
MSVC understands. (CodeView?)

Thanks again,
Peter

On 8 May 2015 at 15:26, Robinson, Paul
<Paul_Robinson at playstation.sony.com> wrote:
>> -----Original Message-----
>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at
cs.uiuc.edu] On
>> Behalf Of Peter Mackay
>> Sent: Thursday, May 07, 2015 11:29 PM
>> To: llvmdev at cs.uiuc.edu
>> Subject: [LLVMdev] Getting llc to emit debug info into a obj file from
>> source .ll
>>
>> Hello,
>>
>> I'm working on a binary translator project that emits an .ll file.
I'm
>> trying to debug it in Visual Studio and would like to be able to step
>> through and see my generated .ll file in the debugger.
>>
>> Does LLVM support debug information corresponding to an input .ll
>> file? My hunch is "no, as it expects debug info to come from
Clang."
>
> That's exactly right.
>
>>
>> I assemble it using:
>>
>> llc -filetype=obj -O0 -mtriple=x86_64-pc-windows-msvc -o=output.obj
>> input.ll
>>
>> I've ran objdump on the file as follows:
>>
>> llvm-objdump -section-headers output.obj
>>
>> and see the following output:
>>
>> output.obj:   file format COFF-x86-64
>>
>> Sections:
>> Idx Name          Size      Address          Type
>>   0 .text         00000012 0000000000000000 TEXT
>>   1 .data         00000000 0000000000000000 DATA
>>   2 .bss          00000000 0000000000000000 BSS
>>   3 .drectve      00000018 0000000000000000
>>   4 .xdata        00000008 0000000000000000 DATA
>>   5 .pdata        0000000c 0000000000000000 DATA
>>
>> I don't think there's debugging information there, as the .text
>> section is very small.
>
> DWARF info would be in sections whose names start with ".debug_"
> and not in the .text section.
> --paulr
>
>>
>> Thanks,
>> Peter
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev