llvm-project/lldb/source
Pavel Labath aa51e6a683 Refactor user/group name resolving code
Summary:
This creates an abstract base class called "UserIDResolver", which can
be implemented to provide user/group ID resolution capabilities for
various objects. Posix host implement a PosixUserIDResolver, which does
that using posix apis (getpwuid and friends).  PlatformGDBRemote
forwards queries over the gdb-remote link, etc. ProcessInstanceInfo
class is refactored to make use of this interface instead of taking a
platform pointer as an argument. The base resolver class already
implements caching and thread-safety, so implementations don't have to
worry about that.

The main motivating factor for this was to remove external dependencies
from the ProcessInstanceInfo class (so it can be put next to
ProcessLaunchInfo and friends), but it has other benefits too:
- ability to test the user name caching code
- ability to test ProcessInstanceInfo dumping code
- consistent interface for user/group resolution between Platform and
  Host classes.

Reviewers: zturner, clayborg, jingham

Subscribers: mgorny, lldb-commits

Differential Revision: https://reviews.llvm.org/D58167

llvm-svn: 355323
2019-03-04 18:48:00 +00:00
..
API [Reproducers] Capture and replay interpreter commands. 2019-03-02 00:20:26 +00:00
Breakpoint When deserializing breakpoints some options may not be present. 2019-02-22 23:54:11 +00:00
Commands Refactor user/group name resolving code 2019-03-04 18:48:00 +00:00
Core [Reproducers] Capture and replay interpreter commands. 2019-03-02 00:20:26 +00:00
DataFormatters Remove redundant ::get() for smart pointer. (NFC) 2019-02-12 03:47:39 +00:00
Expression [Reproducers] Capture and replay interpreter commands. 2019-03-02 00:20:26 +00:00
Host Refactor user/group name resolving code 2019-03-04 18:48:00 +00:00
Initialization [Reproducers] Initialize reproducers before initializing the debugger. 2019-02-21 22:26:16 +00:00
Interpreter [Reproducers] Capture and replay interpreter commands. 2019-03-02 00:20:26 +00:00
Plugins Refactor user/group name resolving code 2019-03-04 18:48:00 +00:00
Symbol Increase timeout in Symbols::DownloadObjectAndSymbolFile 2019-03-01 03:24:59 +00:00
Target Refactor user/group name resolving code 2019-03-04 18:48:00 +00:00
Utility Refactor user/group name resolving code 2019-03-04 18:48:00 +00:00
CMakeLists.txt [CMake] Unify scripts for generating VCS headers 2019-02-06 03:51:00 +00:00
lldb.cpp [CMake] Unify scripts for generating VCS headers 2019-02-06 03:51:00 +00:00