diff options
author | Mike McLaughlin <mikem@microsoft.com> | 2017-03-10 10:57:29 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-10 10:57:29 -0800 |
commit | 74271c77bac4d87890ade290c630d86266c0dc7b (patch) | |
tree | 05023aba33ca58a56a0ff2439a6abb46cdf6eb56 /src/pal | |
parent | 0ce065c5f28f840f02c9621a45bb9e3daed87e1e (diff) | |
download | coreclr-74271c77bac4d87890ade290c630d86266c0dc7b.tar.gz coreclr-74271c77bac4d87890ade290c630d86266c0dc7b.tar.bz2 coreclr-74271c77bac4d87890ade290c630d86266c0dc7b.zip |
Fix debugging on OS X Sierra (#10078)
Issue #9730
The output of the vmmap changed between OS X versions. Changed the sscanf formatting to deal with both old/new formats.
Diffstat (limited to 'src/pal')
-rw-r--r-- | src/pal/src/thread/process.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/pal/src/thread/process.cpp b/src/pal/src/thread/process.cpp index ae069aec86..050665ce7c 100644 --- a/src/pal/src/thread/process.cpp +++ b/src/pal/src/thread/process.cpp @@ -2666,6 +2666,12 @@ CreateProcessModules( // VM_ALLOCATE 0000000105bac000-0000000105bad000 [ 4K] r--/rw- SM=SHM // MALLOC (admin) 0000000105bad000-0000000105bae000 [ 4K] r--/rwx SM=ZER // MALLOC 0000000105bae000-0000000105baf000 [ 4K] rw-/rwx SM=ZER + + // OS X Sierra (10.12.4 Beta) + // REGION TYPE START - END [ VSIZE RSDNT DIRTY SWAP] PRT/MAX SHRMOD PURGE REGION DETAIL + // Stack 00007fff5a930000-00007fff5b130000 [ 8192K 32K 32K 0K] rw-/rwx SM=PRV thread 0 + // __TEXT 00007fffa4a0b000-00007fffa4a0d000 [ 8K 8K 0K 0K] r-x/r-x SM=COW /usr/lib/libSystem.B.dylib + // __TEXT 00007fffa4bbe000-00007fffa4c15000 [ 348K 348K 0K 0K] r-x/r-x SM=COW /usr/lib/libc++.1.dylib char *line = NULL; size_t lineLen = 0; int count = 0; @@ -2686,9 +2692,8 @@ CreateProcessModules( { void *startAddress, *endAddress; char moduleName[PATH_MAX]; - int size; - if (sscanf_s(line, "__TEXT %p-%p [ %dK] %*[-/rwxsp] SM=%*[A-Z] %s\n", &startAddress, &endAddress, &size, moduleName, _countof(moduleName)) == 4) + if (sscanf_s(line, "__TEXT %p-%p [ %*[0-9K ]] %*[-/rwxsp] SM=%*[A-Z] %s\n", &startAddress, &endAddress, moduleName, _countof(moduleName)) == 3) { bool dup = false; for (ProcessModules *entry = listHead; entry != NULL; entry = entry->Next) |