[LLVMdev] Debug information for llvm-clang

Irina Lipov irinalipov at gmail.com
Tue Aug 9 13:28:05 PDT 2011


Hello,

I want to retrieve maximal debug information which is generated after clang
execution
I checked the functionality for clang : DIBuilder,CGDebugInfo,DwarfDebug
classes in the clang.
They generate wide spectrum of data (For example I saw for Class type - base
classes /inheritance/friends etc.)

i want to see all the data for debugging after clang is executed..To check
this I made following example

class friendClass
{
public:
 int x;
};
class classBase
{
public:
 int get1(){return 1;}
 int get2(){return 2;}
};
class classDer:public classBase
{
public:
 int get1(){return 1;}
 friend class frienClass;
};

int f()
{
 classDer x;
  return x.get1();
}


After C:\Windows\system32>clang C:\clangParam\clangExample.cpp -S -emit-llvm
-o -

I get following output

; ModuleID = 'C:\clangParam\clangExample.cpp'
target datalayout =
"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
target triple = "i686-pc-win32"
%class.classDer = type { i8 }
define i32 @_Z1fv() {
entry:
  %x = alloca %class.classDer, align 1
  %call = call i32 @_ZN8classDer4get1Ev(%class.classDer* %x)
  ret i32 %call
}
define linkonce_odr i32 @_ZN8classDer4get1Ev(%class.classDer* %this)
nounwind align 2 {
entry:
  %this.addr = alloca %class.classDer*, align 4
  store %class.classDer* %this, %class.classDer** %this.addr, align 4
  %this1 = load %class.classDer** %this.addr
  ret i32 1
}


As can you see no remarks in the output about base and friend types
Also I tried to get TemplateTypeParameter/TemplateValueParameter  in such a
way for some template class but the results were "similar"
What can you propose to solve this problems and get full/maximum debug
information after clang.
Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110809/cb14880e/attachment.html>


More information about the llvm-dev mailing list