Add a fourth parameter to the DEFINE_DACVAR macro that is the actual fully qualified...
authorMike McLaughlin <mikem@microsoft.com>
Tue, 24 Feb 2015 23:25:57 +0000 (15:25 -0800)
committerMike McLaughlin <mikem@microsoft.com>
Fri, 6 Mar 2015 22:32:22 +0000 (14:32 -0800)
commiteaed12c0dc4e458e89ce03685c21a697787c5b67
treed14193756a459249af619bf1aae984d875369607
parent52a0efc99c562e715c278eed8421f58d3ca6b327
Add a fourth parameter to the DEFINE_DACVAR macro that is the actual fully qualified name of the static/global.

First pass at the global DAC table support for Linux. Explicitly build the table in the coreclr module instead of extract it from the pdb and put it in a resource.

Fixed the SVR gc globals in the DAC table. They had to be seperated and initialized in gceesvr.cpp.

Start on global pointer table.

PAL functions to write and read the DAC table address between processes.

The dac table is now copied from the coreclr process to the DAC/debugger process.  The tables were not being built with exactly the same defines so they weren't the same size. Fixed a bug in the read memory implementation. Still assumes pid = 0.

Changed the dacTable entries to be RVAs and renabled getting the corclr module base addres (m_globalBase). Added dac table address file cleanup on coreclr shutdown.

Filled in the vtable entries in the global dac table.  Changed some of the VPTR_* macros to be defined on the coreclr side (RS) to defined a constructor that is used to get the vtable in dactable.cpp. These changes required default constructors to be added to some of the classes.

Changed getting the vtable address to not invoke the destructors since the constructor used didn't do anything (like initialize variables, etc.).

Added a TODO comment about the debuggee pid not being available in the dac table address file name.

Fixed Windows build. Created a couple of new VPTR_* macros that add a default constructor only if building coreclr (not DAC) on Linux.

Comment on how these DAC table functions are temporary.
40 files changed:
dac.cmake
src/ToolBox/SOS/Strike/strike.cpp
src/ToolBox/SOS/lldbplugin/debugclient.cpp
src/debug/daccess/daccess.cpp
src/debug/daccess/enummem.cpp
src/debug/ee/CMakeLists.txt
src/debug/ee/dactable.cpp [new file with mode: 0644]
src/dlls/mscoree/mscoree.cpp
src/gc/gc.h
src/gc/gceesvr.cpp
src/gc/gcpriv.h
src/gc/gcscan.h
src/inc/corhost.h
src/inc/daccess.h
src/inc/dacvars.h
src/inc/eetwain.h
src/inc/sstring.h
src/inc/vptr_list.h
src/pal/inc/pal.h
src/pal/src/CMakeLists.txt
src/pal/src/misc/dactableaddress.cpp [new file with mode: 0644]
src/unwinder/dac/hostwinamd64/CMakeLists.txt
src/vm/appdomain.hpp
src/vm/ceemain.h
src/vm/codeman.h
src/vm/crst.h
src/vm/dbginterface.h
src/vm/eedbginterface.h
src/vm/eedbginterfaceimpl.h
src/vm/object.h
src/vm/pefile.h
src/vm/rcwwalker.h
src/vm/security.h
src/vm/securitydescriptor.h
src/vm/securitydescriptorappdomain.h
src/vm/securitydescriptorassembly.h
src/vm/simplerwlock.hpp
src/vm/stackwalktypes.h
src/vm/stubmgr.h
src/vm/win32threadpool.h