Enable gcroot and other gc related sos commands.
authorMike McLaughlin <mikem@microsoft.com>
Fri, 14 Aug 2015 01:36:31 +0000 (18:36 -0700)
committerMike McLaughlin <mikem@microsoft.com>
Sat, 22 Aug 2015 07:59:18 +0000 (00:59 -0700)
commit74480b06c47cccc4d542aa29556619fdbf0735aa
tree51d9b82a43db6da21ad2f888830fe104fac71fbc
parent72e1cfa152568e8fa8188c404e1a4776bc84958f
Enable gcroot and other gc related sos commands.

The "gcroot" command currently doesn't work with lldb 3.6 (our default package), but
works fine with lldb 3.7.0.

lldb 3.6 terminates with
(lldb) sos GCRoot 00007fffcc004ce8
*** Error in `lldb-3.6': munmap_chunk(): invalid pointer: 0x000000000184cde8 ***

PAL_STDCPP_COMPAT is the define that the VS team added to allow the xplat
headers to be used. This is neccessary for the whole SOS directory now
because gcroot and other gc commands need unorderd_map, unorderd_set, etc.
from the stdlib.

Had to change all wchar_t to WCHAR because the xplat stdlib default is UTF32.

Had to rename and provide macros that conflict with the stdlib:

wcslen -> _wcslen
wcsncmp -> _wcsncmp
wcsrchr -> _wcsrchr
wcscmp -> _wcscmp
wcschr -> _wcschr
wcscspn -> _wcscspn
wcscat -> _wcscat

__in -> ___in
__out -> ___out

max(a, b) -> _max(a, b)
min(a, b) -> _min(a, b)

Had to ifdef PAL_STDCPP_COMPAT a lot more of pal.h, palrt.h and some other header files.

Changed a bunch of  L"" to W("").

Commit migrated from https://github.com/dotnet/coreclr/commit/2f4462661a5134428738c0da4ef2061857b7528e
41 files changed:
src/coreclr/CMakeLists.txt
src/coreclr/build.out [new file with mode: 0644]
src/coreclr/src/CMakeLists.txt
src/coreclr/src/ToolBox/SOS/CMakeLists.txt
src/coreclr/src/ToolBox/SOS/Strike/CMakeLists.txt
src/coreclr/src/ToolBox/SOS/Strike/ExpressionNode.cpp
src/coreclr/src/ToolBox/SOS/Strike/WatchCmd.cpp
src/coreclr/src/ToolBox/SOS/Strike/datatarget.cpp
src/coreclr/src/ToolBox/SOS/Strike/datatarget.h
src/coreclr/src/ToolBox/SOS/Strike/disasm.cpp
src/coreclr/src/ToolBox/SOS/Strike/disasm.h
src/coreclr/src/ToolBox/SOS/Strike/disasmX86.cpp
src/coreclr/src/ToolBox/SOS/Strike/dllsext.cpp
src/coreclr/src/ToolBox/SOS/Strike/eeheap.cpp
src/coreclr/src/ToolBox/SOS/Strike/exts.cpp
src/coreclr/src/ToolBox/SOS/Strike/gchist.cpp
src/coreclr/src/ToolBox/SOS/Strike/gcroot.cpp
src/coreclr/src/ToolBox/SOS/Strike/metadata.cpp
src/coreclr/src/ToolBox/SOS/Strike/sildasm.cpp
src/coreclr/src/ToolBox/SOS/Strike/sos.cpp
src/coreclr/src/ToolBox/SOS/Strike/sos.h
src/coreclr/src/ToolBox/SOS/Strike/stressLogDump.cpp
src/coreclr/src/ToolBox/SOS/Strike/strike.cpp
src/coreclr/src/ToolBox/SOS/Strike/strike.h
src/coreclr/src/ToolBox/SOS/Strike/util.cpp
src/coreclr/src/ToolBox/SOS/Strike/util.h
src/coreclr/src/ToolBox/SOS/Strike/vm.cpp
src/coreclr/src/inc/daccess.h
src/coreclr/src/inc/fusionbind.h
src/coreclr/src/inc/holder.h
src/coreclr/src/inc/safemath.h
src/coreclr/src/inc/sospriv.idl
src/coreclr/src/inc/utilcode.h
src/coreclr/src/pal/inc/pal.h
src/coreclr/src/pal/inc/pal_mstypes.h
src/coreclr/src/pal/inc/rt/palrt.h
src/coreclr/src/pal/inc/rt/sal.h
src/coreclr/src/pal/inc/rt/specstrings.h
src/coreclr/src/pal/inc/strsafe.h
src/coreclr/src/pal/prebuilt/inc/sospriv.h
src/coreclr/src/pal/src/cruntime/silent_printf.cpp