[LLVMdev] question

Eric Christopher echristo at gmail.com
Thu Oct 4 12:50:59 PDT 2012


That's because instructions have a location associated with them, not
a compile unit.

-eric

On Thu, Oct 4, 2012 at 12:46 PM, George Baah <georgebaah at gmail.com> wrote:
> I used DILocation instead of DICompileUnit and it works. Hmmm, interesting.
>
> George
>
> On Thu, Oct 4, 2012 at 1:33 AM, George Baah <georgebaah at gmail.com> wrote:
>>
>> Here is the code. I am running on llvm 3.1 on Lion (Mac 10.7.4)
>>
>> string getFileDirectory(const Instruction &I){
>>
>>   MDNode *MD = I.getMetadata("dbg");
>>
>>   DICompileUnit compileUnit(MD);
>>
>>   return compileUnit.getDirectory().str();
>>
>> }
>>
>>
>> George
>>
>> On Wed, Oct 3, 2012 at 12:40 PM, Eric Christopher <echristo at gmail.com>
>> wrote:
>>>
>>> Without knowing the code that you've written and the IR that you're
>>> running on I'm
>>> not sure what I can do to help you.
>>>
>>> -eric
>>>
>>> On Wed, Oct 3, 2012 at 9:32 AM, George Baah <georgebaah at gmail.com> wrote:
>>> > Yeah, It looks like I am doing exactly what's in Dwarf*.cpp files, yet
>>> > I am
>>> > getting blanks.
>>> >
>>> > George
>>> >
>>> > On Tue, Oct 2, 2012 at 2:10 PM, Eric Christopher <echristo at gmail.com>
>>> > wrote:
>>> >>
>>> >> On Tue, Oct 2, 2012 at 11:00 AM, George Baah <georgebaah at gmail.com>
>>> >> wrote:
>>> >> > Hi Guys,
>>> >> >   How does one get the directory of the compilation unit in llvm?
>>> >> > I am using DICompileUnit but for some reason I am getting blanks
>>> >> > for the directory name. Here is my code ...
>>> >> >
>>> >> > MDNode *MD = I.getMetadata("dbg");
>>> >> >
>>> >> > DICompileUnit compileUnit(MD);
>>> >> >
>>> >> > return compileUnit.getDirectory().str();
>>> >> >
>>> >>
>>> >> In general for these questions it's easier to look at how it's done in
>>> >> DwarfDebug.cpp and DwarfCompileUnit.cpp.
>>> >>
>>> >> -eric
>>> >
>>> >
>>
>>
>



More information about the llvm-dev mailing list