[LLVMdev] Replacement for findStopPoint() in LLVM 2.7

Török Edwin edwintorok at gmail.com
Tue Mar 16 08:10:10 PDT 2010


On 03/16/2010 05:00 PM, John Criswell wrote:
> Dear LLVMers,
> 
> I'm updating some code to use the new LLVM 2.7 API.  One piece of this 
> code uses the findStopPoint() function to find the source filename and 
> line number information of an instruction.
> 
> What is the best way to do this under LLVM 2.7 now that the stop point 
> intrinsic has been removed?  It appears that the debug information is 
> attached as metadata, but what is the easiest way to extract the 
> filename and line number information out of this metadata?
> 

Something like this (you can of course cache TheMetadata and MDDbgKind)

llvm::MetadataContext *TheMetadata = M->getContext().getMetadata();
MDDbgKind = TheMetadata->getMDKind("dbg");
if (MDDbgKind) {
  if (MDNode *Dbg = TheMetadata->getMD(MDDbgKind, I)) {
        DILocation Loc(Dbg);
	...
	Loc.getDirectory()
	Loc.getFilename()
	Loc.getLineNumber()
        Loc.getColumnNumber()
	....
  }
}

Best regards,
--Edwin



More information about the llvm-dev mailing list