This is an archive of the discontinued LLVM Phabricator instance.

[Reproducers] Limit logging to calls that cross the API boundary.
ClosedPublic

Authored by JDevlieghere on Apr 22 2019, 3:20 PM.

Details

Summary

We recently moved API logging into the instrumentation macros. This made that logging is now consistent and abstracted behind a macro for every API functions, independent of the reproducers. It also means we have a lot more output. While this is a good thing, it also meant a lot more noise in the log, from things that aren't always equally interesting, such as the copy constructor for example.

To improve usability, we should increase the signal-to-noise ratio. I propose to achieve this by only logging API functions that cross the API boundary. This is a divergence of what we had before, where a select number of functions were logged, irregardless of the API boundary, a concept that was introduced for the reproducers. However, I believe this is in line with the purpose of the API log.

Diff Detail

Repository
rLLDB LLDB

Event Timeline

JDevlieghere created this revision.Apr 22 2019, 3:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 22 2019, 3:20 PM
labath accepted this revision.Apr 23 2019, 1:52 AM

Logging only external calls makes sense to me. The one thing I was not sure about is the name of the Recorder class, since it's responsibility was now extended to include logging (and that has affected its design). However, I couldn't come up with a better name, and I suppose logging could be considered a form of recording, so maybe that's fine as it is. It might be good to mention the new role in the class description too...

lldb/source/Utility/ReproducerInstrumentation.cpp
106 ↗(On Diff #196139)

std::move(pretty_args)

This revision is now accepted and ready to land.Apr 23 2019, 1:52 AM
This revision was automatically updated to reflect the committed changes.