我跟着How to get variable definition line number etc. using dbg metadata?爲了得到局部變量(分配)的行號定義,它工作正常。但我需要相同的全局。所以我試圖從http://llvm.org/docs/doxygen/html/DbgInfoPrinter_8cpp_source.html#l00062破解findDbgGlobalDeclare()
方法。但是,我的字節碼中沒有llvm.dbg.gv
,所以沒有提取dbg信息。我使用編譯我的目標代碼。從我的字節碼的一些樣本:llvm得到全局定義行號
@r = global i32 3, align 4
%4 = load i32* @r, align 4, !dbg !942
...
%a = alloca i32, align 4
%1 = load i32* %a, align 4, !dbg !939
不過,我有:
!924 = metadata !{i32 786484, i32 0, null, metadata !"r", metadata !"r", metadata !"", metadata !841, i32 19, metadata !56, i32 0, i32 1, i32* @r} ; [ DW_TAG_variable ] [r] [line 19] [def]
與在其!0
是間接相關的,並且有!llvm.dbg.cu = !{!0}
。
謝謝!
謝謝您的建議。 – Alex 2013-03-04 12:13:29