我正在尝试调试下面显示的一段LLVM代码。 当我尝试在调用IRBuilder :: Create时运行gdb时,它不会介入调用,而是进入调用llvm :: StringRef来为指令创建一个临时名称,因为我没有指定一个名称。指令。
如何进入完整的IRBuilder :: CreateAlloca()调用?
(原因:由于某种原因,其中一个IRBuilder调用没有创建指令,我希望看到原因,因此这个调试过程)
at ../src/utility_functions.h:1047
1047 IRBuilder<> tempBuilder(allocaInst);
(gdb)n
1048 allocaInst = tempBuilder.CreateAlloca(phiconstantType);
(gdb)步骤
llvm :: Twine :: Twine(this = 0x7fffffffc590,Str = 0x16cd8e6“”) 在 /home/malhar/arm_work/llvm_versions/llvm_4.0.0/llvm/include/llvm/ADT/Twine.h:267
267 : RHSKind(EmptyKind) {
(gdb) n
268 if (Str[0] != '\0') {
(gdb) n
272 LHSKind = EmptyKind;
(gdb) n
274 assert(isValid() && "Invalid twine!");
(gdb) n
275 }