Allow rejit on attach (#19054)
authorDavid Mason <davmason@microsoft.com>
Wed, 1 Aug 2018 23:53:33 +0000 (16:53 -0700)
committerGitHub <noreply@github.com>
Wed, 1 Aug 2018 23:53:33 +0000 (16:53 -0700)
commit1487fa7156bfc5d3ff8def0de672003ada3ff216
tree475ae3644ff7ced81b5f08cb96ef552ffe1bbf1d
parent9700313f2684c784d025a638b0ae5de4ba2dcb00
Allow rejit on attach (#19054)

* change profiler rejit to be enabled by default, and also change the debugger to only give up on setting a breakpoint if a method has been rejitted, rather than just whenever rejit is on

* copy corprof changes to the pal version, and change rejit so it is allowable on attach

* Change GetILFunctionBody/SetILFunctionBody to be allowed after attach

* Also make RequestRevert allowable on attach

* change lock order and switch from GC_NOTRIGGER to GC_TRIGGERS in Rejit codepath through the codeversionmanager

* make GetReJITIDs callable after attach

* change profiler rejit to be enabled by default, and also change the debugger to only give up on setting a breakpoint if a method has been rejitted, rather than just whenever rejit is on

* copy corprof changes to the pal version, and change rejit so it is allowable on attach

* Change GetILFunctionBody/SetILFunctionBody to be allowed after attach

* Also make RequestRevert allowable on attach

* change lock order and switch from GC_NOTRIGGER to GC_TRIGGERS in Rejit codepath through the codeversionmanager

* make GetReJITIDs callable after attach

* rename value to enable/disable rejit on attach, and cache values of profiler rejit and config value

* Change places where the jit checks for rejit being enabled to actually check for what it wants, which is whether jump stamps are enabled

* get rid of old value that was readded by merge somehow

* disallow detach after setting rejit event mask, and prevent it from being set if rejit on attach is turned off

* fix incorrect assert

* Take the codemanager lock in SetIP
14 files changed:
src/debug/ee/debugger.cpp
src/inc/clrconfigvalues.h
src/inc/corprof.idl
src/pal/prebuilt/inc/corprof.h
src/vm/codeman.cpp
src/vm/codeversion.cpp
src/vm/codeversion.h
src/vm/eetoprofinterfaceimpl.cpp
src/vm/eetoprofinterfaceimpl.h
src/vm/eetoprofinterfaceimpl.inl
src/vm/jitinterface.cpp
src/vm/proftoeeinterfaceimpl.cpp
src/vm/rejit.cpp
src/vm/rejit.inl