[lldb-dev] [RFC] Simplifying logging code

Tamas Berghammer via lldb-dev lldb-dev at lists.llvm.org
Thu Aug 13 03:03:55 PDT 2015


Thank you for the link to the previous discussion and the description of
the Windows logging. I like the idea of the macro based logging on Windows
but agree that the explicit log channel definition is a bit too verbose.

Currently I would prefer a mixed solution with 'Log* log = ...; LOG_IF(log,
"pattern", ...);' for the usual case and 'Log* log = ...; LOG_IF_ANY(log,
categories, "pattern", ...);' if we want to log to different log channels.
I believe it will improve the readability quite a lot, but would only make
sense if we can apply it to the full code base within a reasonably short
period of time to avoid confusion with the multiple log patterns.

Tamas

On Wed, Aug 12, 2015 at 7:00 PM Zachary Turner via lldb-dev <
lldb-dev at lists.llvm.org> wrote:

> After the previous discussion I agree that evaluating the arguments is
> unacceptable.  But you are correct here that a macro would solve this.  In
> fact, most C++ log libraries use macros I guess for this very reason.
>
> I decided to make some macros for the windows plugin which you can look at
> it in ProcessWindowsLog.h.
>
> There are some issues that are not obvious how to solve though.  For
> example, the macros I wrote in ProcessWindowsLog cannot be used outside of
> my plugin.  This is because each plugin statically defines its own channels
> as well as defines its own global Log object.  If this were to be done in a
> way that there were one set of macros that all current and future generic
> code and plugins could use, I think it would require a fairly substantial
> refactor.
>
> On Wed, Aug 12, 2015 at 6:11 AM Vince Harron via lldb-dev <
> lldb-dev at lists.llvm.org> wrote:
>
>> We could solve booth the efficiency concerns and the conciseness with a
>> macro.  (Gasp!)
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150813/938dc133/attachment.html>


More information about the lldb-dev mailing list