We only use dumping from lldb-test, from inside the debugger, or from the top level command interpreter.  All of those things necessarily depend on everything anyway.<br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 20, 2018 at 8:02 AM Pavel Labath <<a href="mailto:labath@google.com">labath@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Well, if it depends on everything, then it can only used from places<br>
that also depend on everything. Right now I don't think it matters now<br>
(though it will create a new Dump <-> "everything calling Dump"<br>
cycle). However, I can imagine this might cause some tricky situations<br>
later on when we try to clean up dependencies between the high level<br>
classes.<br>
On Fri, 20 Jul 2018 at 15:50, Zachary Turner via Phabricator via<br>
lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:<br>
><br>
> zturner added a subscriber: labath.<br>
> zturner added a comment.<br>
><br>
> I had previously thought of making a top level project called Dump that<br>
> depends on everything. Also makes it very obvious where all the dumpers<br>
> are. It can have overloaded functions called lldb_private::dump(T&) for<br>
> every value of T, then no matter what type you have, all you have to do is<br>
> call dump(T). Kills all birds with one stone<br>
<br>
Also remember that our dump functions have various (and<br>
non-homogeneous) arguments to tweak the dump format. That doesn't mean<br>
this couldn't work, just that the calls will look more like dump(T,<br>
Stream, format_arg_1, format_arg_2, ... format_arg_n).<br>
</blockquote></div>