Get modules information using proc_pidinfo() on macOS (#42900)
authorIlia <ki.stfu@gmail.com>
Mon, 12 Oct 2020 17:07:27 +0000 (20:07 +0300)
committerGitHub <noreply@github.com>
Mon, 12 Oct 2020 17:07:27 +0000 (10:07 -0700)
commitb099ab3e6d2654b23da2431b229fb375f2e4686f
tree731a8cbf52f309195c083709f98de9fbe0aa3092
parent912e88d02e7d9beab0f165233e881e7880310912
Get modules information using proc_pidinfo() on macOS (#42900)

Previously CreateProcessModules() parsed the output of vmmap command to get
modules addresses/paths on macOS, but on some Macs with latest macOS 10.15.6
vmmap hides full paths to some process modules (.dylibs in non-system folders),
replacing some parts with *:
```
__TEXT                 000000010d8bd000-000000010ddce000 [ 5188K  5188K     0K     0K] r-x/rwx SM=COW          /Users/USER/*/libcoreclr.dylib
```

In particular, it breaks the debugger functionality due to invalid path
`/Users/USER/*/libmscordbi.dylib`, and error code
CORDBG_E_DEBUG_COMPONENT_MISSING is returned.

Now we get modules information by iterating over regions using proc_pidinfo()
in CreateProcessModules().

Fixes #42888
src/coreclr/src/pal/src/thread/process.cpp