Deep Majumder via llvm-dev
2021-Feb-11 12:20 UTC
[llvm-dev] Printing while developing on LLVM/Clang code
Hi everyone, I have found that `print <expr>` often doesn't work while running a debug build of clang in lldb. So I have to resort to print statements. Since <iostream> is not used inside LLVM/Clang code, I have to include it in manually and remember to remove it before committing. Is there a better way to do this, either in lldb or insert print statements? Warm regards, Deep -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210211/bd46cf27/attachment.html>
Matt P. Dziubinski via llvm-dev
2021-Feb-11 12:53 UTC
[llvm-dev] Printing while developing on LLVM/Clang code
On 2/11/2021 13:20, Deep Majumder via llvm-dev wrote:> Hi everyone, > I have found that `print <expr>` often doesn't work while running a > debug build of clang in lldb. So I have to resort to print statements. > Since <iostream> is not used inside LLVM/Clang code, I have to include > it in manually and remember to remove it before committing. Is there a > better way to do this, either in lldb or insert print statements?Depending on the type of <expr> it's also worth trying `print <expr>.dump()` or `print <expr>.print()`. See: https://bholt.org/posts/llvm-debugging.html, https://llvm.org/docs/WritingAnLLVMPass.html#the-print-method, https://clang.llvm.org/hacking.html#debugging Otherwise this may come in handy: LLVM_DEBUG(dbgs() << "I am here!\n"); See: https://llvm.org/docs/ProgrammersManual.html#the-llvm-debug-macro-and-debug-option Don't forget to enable it: "One additional nice thing about the LLVM_DEBUG() macro is that you can enable or disable it directly in gdb. Just use “set DebugFlag=0” or “set DebugFlag=1” from the gdb if the program is running. If the program hasn’t been started yet, you can always just run it with -debug." Best, Matt
David Blaikie via llvm-dev
2021-Feb-11 16:01 UTC
[llvm-dev] Printing while developing on LLVM/Clang code
dump functions, as Matt mentioned, are probably the immediate go-to. Otherwise if you want to improve 'print <expr>' support, it probably involves writing pretty printers like/in here: llvm/utils/lldbDataFormatters.py On Thu, Feb 11, 2021 at 4:20 AM Deep Majumder via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > Hi everyone, > I have found that `print <expr>` often doesn't work while running a debug build of clang in lldb. So I have to resort to print statements. Since <iostream> is not used inside LLVM/Clang code, I have to include it in manually and remember to remove it before committing. Is there a better way to do this, either in lldb or insert print statements? > Warm regards, > Deep > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev