llvm get globals definition line number

Hello,

I followed the http://stackoverflow.com/questions/13852180/how-to-get-variable-definition-line-number-etc-using-dbg-metadata in order to get the line number definition for local variables (allocas), which works fine. But I need the same for globals. So I tried to hack the findDbgGlobalDeclare() method from http://llvm.org/docs/doxygen/html/DbgInfoPrinter_8cpp_source.html#l00062 . However, I have no llvm.dbg.gv in my bytecode, so there is no dbg info to extract. I compile my target code using clang++ -O0 -g -emit-llvm Test.cpp -c -o Test.bc . Some samples from my bytecode:

@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

Thank you !

However, I do have:

!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]

with on which !0 is indirectly dependent and there is ![llvm.dbg.cu](http://llvm.dbg.cu) = !{!0} .

However, I do have:

    !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]

with on which `!0` is indirectly dependent and there is `!llvm.dbg.cu =
!{!0}` .

Right, the modern debug info metadata format stores the list of
globals in the last (optional) field of the compile_unit description

http://llvm.org/docs/SourceLevelDebugging.html#compile-unit-descriptors