[LLVMdev] Questions about attaching DWARF source code debugging information to generated LLVM-IR.

Malea, Daniel daniel.malea at intel.com
Tue Apr 23 14:18:26 PDT 2013


Hmm, are you using a version of LLVM with asserts enabled (I.e. A debug
build)?

I cut-and-paste your IR into a text file and ran (a debug version of) llc
on it, which caused the following assertion failure that seems related to
some DWARF mishap:


llc: ../lib/CodeGen/AsmPrinter/DwarfDebug.cpp:1400: void
llvm::DwarfDebug::beginFunction(const llvm::MachineFunction*): Assertion
`TheCU && "Unable to find compile unit!"' failed.
0  llc             0x00000000011d3ad6
1  llc             0x00000000011d3d5d
2  llc             0x00000000011d37ac
3  libpthread.so.0 0x00007fa2aa6a7cb0
4  libc.so.6       0x00007fa2a9afd425 gsignal + 53
5  libc.so.6       0x00007fa2a9b00b8b abort + 379
6  libc.so.6       0x00007fa2a9af60ee
7  libc.so.6       0x00007fa2a9af6192
8  llc             0x00000000009b0799
9  llc             0x000000000099a197
10 llc             0x000000000077b14d
11 llc             0x0000000000cd7b81
12 llc             0x00000000010d2aa0
13 llc             0x00000000010d2c9b
14 llc             0x00000000010d3013
15 llc             0x00000000010d3628
16 llc             0x00000000010d383b
17 llc             0x000000000042781c
18 llc             0x00000000004267cd
19 libc.so.6       0x00007fa2a9ae876d __libc_start_main + 237
20 llc             0x0000000000426129
Stack dump:
0.	Program arguments: ./llvm/build-cmake/bin/llc christian.ll -o christian
1.	Running pass 'Function Pass Manager' on module 'christian.ll'.
2.	Running pass 'X86 Assembly / Object Emitter' on function '@repl'
Aborted (core dumped)


It looks like something is wrong with one of your function definition.
Glancing at the IR though, I can't tell what though..

(PS. I attached a debugger and got a partial dump of the MachineFunction
that causes the assertion in beginFunction. See attached.



Good luck,
Dan

On 2013-04-23 4:55 PM, "Christian Schafmeister" <chris.schaf at verizon.net>
wrote:

>
>I didn't make it clear that I load my Common Lisp application into "lldb"
>and then load a compiled bundle into my application using dlopen (I'm on
>OS X and I'm generating a kind of shared library called a "bundle"). Once
>everything is loaded, the functions from the bundle are accessible to my
>Common Lisp environment but I don't seem to be able to access the bundle
>metadata properly from lldb.
>
>Best,
>
>.Chris.
>
>On Apr 23, 2013, at 4:30 PM, Christian Schafmeister <meister at temple.edu>
>wrote:
>
>> 
>> Hey folks, 
>> 
>> I'm wrestling with adding DWARF source code file/line information to my
>>generated LLVM-IR from my Common Lisp compiler.
>> 
>> I think I'm doing everything properly using the llvm::DIBuilder class -
>>but when I load my Common Lisp application and load a compiled bundle
>>into it I don't seem to be able to access the metadata properly.
>> 
>> I can list source lines using "l -f dwarf0.lsp -l 1" but I can't set
>>break-points or do much else.
>> 
>> I've prepared a test case and put it in my public folder on dropbox:
>>https://dl.dropboxusercontent.com/u/6229900/dwarf1.txt
>> 
>> It's a flat text file containing six sections which you can jump to by
>>searching for "SECTION" (all caps).
>> I've added a few lines at each SECTION entry with thoughts about what
>>might be wrong or what is going on.
>> 
>> If one of you debugging gurus could take a few minutes to take a look
>>at it and give me some pointers I'd really, really appreciate it!
>> 
>> Best,
>> 
>> .Chris.
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: machine_assert.txt
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130423/ada82ffd/attachment.txt>


More information about the llvm-dev mailing list