2013-11-03 69 views
0

使用的getMetaData我「在LLVM馬初學者在LLVM

我試圖添加元數據說明我試着用下面的代碼從LLVM-Source Level Debugging解決:。

if (MDNode *N = I->getMetadata("dbg")) { // Here 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(); 
} 

什麼在I->getMetadata("dbg")I數據類型?我應該如何界定I

謝謝:)

回答

3

IInstruction。一般而言,在整個LLVM代碼庫,文檔和代碼示例,

有關高的更多信息LLVM模塊的級別結構以及如何訪問指令,請參閱

+0

謝謝:)你能告訴我,比如我應該如何初始化指令*我?我想要一個具體的例子,我無法找到。 – ConsistentProgrammer

+0

@ConsistentProgrammer只需打開您想要創建的指令的代碼或文檔。例如,如果你想創建一個['ret'指令](http://llvm.org/docs/LangRef.html#ret-instruction),你可以使用其[Create'靜態方法](http ://llvm.org/docs/doxygen/html/classllvm_1_1ReturnInst.html),例如'ReturnInst * I = ReturnInst :: Create(C);'其中'C'是當前上下文(您可以從模塊)。 – Oak