[LLVMdev] Dumping memory layout with clang

Duncan P. N. Exon Smith dexonsmith at apple.com
Tue Jul 1 10:59:02 PDT 2014


+cfe-dev, bcc: llvm-dev

> On 2014-Jun-30, at 23:17, Matthias Goldhoorn <matthias.goldhoorn at uni-bremen.de> wrote:
> 
> Dear dev's,
> first sorry for this "user" question here, but i don't found a llvm-user Mailinglist. I hope it is okay to ask here.

This looks related to the clang API, so it probably belongs on cfe-dev
[1], although cfe-users [2] is another possibility.

[1]: http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
[2]: http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

> 
> Hi search for a way to dump the memory layout of a class/structure/datatype with clang (x64 primary target).
> I have a simple application based on [1].
> 
> I also added this function 
> 
> 
>      bool VisitFieldDecl(FieldDecl *F)
>     {
>       F->dump();
>       std::cerr << F->getQualifiedNameAsString()  << " " << F->getBitWidthValue(*Context) << " " << std::endl;
>       F->dump() ;
>       std::cerr << "-----------------------------------------" << std::endl;
>       return true;
>     }
> 
> 
> Unfortunately getBitWidthValue also returns zero for my types.
> 
> I need the complete memory-layout recursively for each class and all nested types. Including sizes/offsets.
> 
> Maybe the AST is the wrong place, and i need a other hook to start, can you give me some hints?
> 
>   [1]: http://clang.llvm.org/docs/RAVFrontendAction.html
> 
> -- 
>  Dipl.-Inf. Matthias Goldhoorn 
>  Space and Underwater Robotic
> 
>  Universität Bremen
>  FB 3 - Mathematik und Informatik
>  AG Robotik
>  Robert-Hooke-Straße 5
>  28359 Bremen, Germany
> 
>  Tel.:     +49 421 178 45-4193
>  Zentrale: +49 421 178 45-6550
>  Fax:      +49 421 178 45-4150
>  E-Mail:   
> matthias.goldhoorn at uni-bremen.de
> 
> 
>  Weitere Informationen: 
> http://www.informatik.uni-bremen.de/robotik
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list