On Feb 8, 2010, at 8:51 PM, Duncan Sands wrote:> this can be done using debug info. Check out > http://llvm.org/docs/SourceLevelDebugging.htmlWow, that threw me for a loop. I'm using the 2.6 release, thinking I was up to date, but its debug output doesn't look anything like what's described in the above link. It appears to document the upcoming 2.7 version, which for some reason produces different debug syntax than 2.6. For example, the llvm.dbg.stoppoint intrinsic function no longer exists in 2.7, and 2.6 has no "metadata" descriptors. Is there any information about these changes and why they were necessary? Also, is there an API for accessing the debug info? I looked through the Programmer's Manual but didn't see anything. Thanks, Trevor
On Feb 9, 2010, at 11:13 AM, Trevor Harmon wrote:> Is there any information about these changes and why they were > necessary?I think I found it: http://nondot.org/~sabre/LLVMNotes/EmbeddedMetadata.txt Still looking for an API to access the metadata... Trevor
On Tue, Feb 9, 2010 at 3:16 PM, Trevor Harmon <Trevor.W.Harmon at nasa.gov> wrote:> On Feb 9, 2010, at 11:13 AM, Trevor Harmon wrote: > >> Is there any information about these changes and why they were >> necessary? > > I think I found it: > > http://nondot.org/~sabre/LLVMNotes/EmbeddedMetadata.txt > > Still looking for an API to access the metadata...Does http://llvm.org/doxygen/DebugInfo_8h.html help?
On Tue, Feb 9, 2010 at 11:16 PM, Trevor Harmon <Trevor.W.Harmon at nasa.gov> wrote:> On Feb 9, 2010, at 11:13 AM, Trevor Harmon wrote: > >> Is there any information about these changes and why they were >> necessary? > > I think I found it: > > http://nondot.org/~sabre/LLVMNotes/EmbeddedMetadata.txt > > Still looking for an API to access the metadata...If you want to map llvm instruction to the source location then try if (MDNode *N = I->getMetadata("dbg")) { // Where I is an LLVM instruction DILocation Loc(N); // DILocation is in DebugInfo.h unsigned Line = Loc.getLineNumber(); StringRef File = Loc.getFilename(); StringRef Dir = Loc.getDirectory(); } Note, this is new and it won't work in llvm2.6. - Devang