[Lldb-commits] [PATCH] D49740: Move RegisterValue, Scalar, State from Core to Utility

Jim Ingham via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Aug 3 14:50:27 PDT 2018

jingham added a comment.

First off, I'm fine with Zachary's suggestion that we let the dust settle a bit before we try to organize things better.  We'll probably do a better job then.

But just to use these cases, for instance, Scalar is the base of how we realize values in the debugger (ValueObject lives on top of this).  It would be good if its landing place was such that if I was looking at how we represent values it was logically placed for that.  State is part of how we present the Process current state, so it seems like it should be grouped with other process related  entities.  And RegisterValue belongs with the other parts of lldb that take apart the machine level state of a process.

It will probably go away, but FastDemangle really belongs around the language handling code.  I agree that Utility is an odd place for CompletionRequest...

SafeMachO is weird.  It gets used in Host - both common & macosx, and we're trying not to include out of Plugins so the MachO object file plugin directory doesn't seem right.  Maybe Host is a better place, it's reason for being is so you can include both llvm/Support/MachO.h and mach/machine.h, so even though it's not directly a host functionality it look a bit like that.  Not sure.

There's also tension between "things that belong together functionally" and "things that need to be separated because we want to layer one strictly on top of the other, since we seem to be treating directories as a representation of dependencies.  Do we want to have a Values directory with ValueObject at the top level, and Scalar in a no-dependency subdirectory?

TTTT, if I need to find a file these days, I either Cmd-Click on a type to go to its definition, or type Cmd-Shift-O and start typing some bits of the file name and Xcode finds it for me.  I'm pretty familiar with the code, so I don't need a higher level skeleton to help me figure out what all is in this project.  I think at this point many of us are in this state...

But once you get past the build issues, the real audience for this level of organization is folks coming new to the project.  It would be good to hear from some of the newer folks what they found confusing or what would have helped them navigate around the project as they are starting out.


More information about the lldb-commits mailing list