Need to debug creation of vtables: where is an enter point

Hi all,

I need to debug creation of vtables. I tried to setup break points at different places of CGVTT.cpp, CGCXXABI.h, CGVTables.cpp, ItaniumCXXABI.cpp, but gdb did not stop at them.

I have:

clang -cc1 version 3.6.0 based upon LLVM 3.6.0svn default target x86_64-unknown-linux-gnu

Its run options:

-cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name test.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -v -dwarf-column-info -coverage-file test.cpp -resource-dir /linux-x86_64-high/gcc_4.7.2/dbg/llvm/bin/…/lib/clang/3.6.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/…/…/…/…/include/c++/4.6 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/…/…/…/…/include/c++/4.6/x86_64-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/…/…/…/…/include/c++/4.6/backward -internal-isystem /usr/local/include -internal-isystem /work/oss_llvm/trunk/work/build/linux-x86_64-high/gcc_4.7.2/dbg/llvm/bin/…/lib/clang/3.6.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O0 -fdeprecated-macro -ferror-limit 19 -fmessage-length 205 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o test.o -x c++ test.cpp

In a created object file I see the following:

_ZTVN10__cxxabiv117__class_type_infoE

I found that it is defined in ItaniumCXXABI.cpp: “_ZTVN10__cxxabiv117__class_type_infoE”, function ItaniumRTTIBuilder::BuildVTablePointer, but gdb did not stop there.

Kind regards,

Evgeny

Check out clang/lib/AST/VTableBuilder.cpp.