-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Generational aware analysis based on environment variable. #40332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
6869fe1
9950cda
a1f07e4
fccefa3
da24d52
075ceb8
952c77e
d659800
0c91c94
41d6be2
5ff3fea
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -85,6 +85,8 @@ | |
| message="$(string.RuntimePublisher.MethodDiagnosticKeywordMessage)" symbol="CLR_METHODDIAGNOSTIC_KEYWORD" /> | ||
| <keyword name="TypeDiagnosticKeyword" mask="0x8000000000" | ||
| message="$(string.RuntimePublisher.TypeDiagnosticKeywordMessage)" symbol="CLR_TYPEDIAGNOSTIC_KEYWORD" /> | ||
| <keyword name="GenAwareKeyword" mask="0x10000000000" | ||
| message="$(string.RuntimePublisher.GenAwareKeywordMessage)" symbol="CLR_GEN_AWARE_KEYWORD" /> | ||
| </keywords> | ||
| <!--Tasks--> | ||
| <tasks> | ||
|
|
@@ -3795,6 +3797,13 @@ | |
| task="AssemblyLoader" | ||
| symbol="KnownPathProbed" message="$(string.RuntimePublisher.KnownPathProbedEventMessage)"/> | ||
|
|
||
| <event value="297" version="0" level="win:Informational" | ||
cshung marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| keywords ="GenAwareKeyword" | ||
| symbol="GenAwareBegin" message="$(string.RuntimePublisher.GenAwareBeginEventMessage)"/> | ||
|
|
||
| <event value="298" version="0" level="win:Informational" | ||
|
||
| keywords ="GenAwareKeyword" | ||
| symbol="GenAwareEnd" message="$(string.RuntimePublisher.GenAwareEndEventMessage)"/> | ||
| </events> | ||
| </provider> | ||
|
|
||
|
|
@@ -7548,6 +7557,9 @@ | |
| <string id="RuntimePublisher.CompilationDiagnosticKeywordMessage" value="CompilationDiagnostic" /> | ||
| <string id="RuntimePublisher.MethodDiagnosticKeywordMessage" value="MethodDiagnostic" /> | ||
| <string id="RuntimePublisher.TypeDiagnosticKeywordMessage" value="TypeDiagnostic" /> | ||
| <string id="RuntimePublisher.GenAwareKeywordMessage" value="GenAwareKeyword" /> | ||
| <string id="RuntimePublisher.GenAwareBeginEventMessage" value="NONE" /> | ||
| <string id="RuntimePublisher.GenAwareEndEventMessage" value="NONE" /> | ||
| <string id="RundownPublisher.LoaderKeywordMessage" value="Loader" /> | ||
| <string id="RundownPublisher.JitKeywordMessage" value="Jit" /> | ||
| <string id="RundownPublisher.JittedMethodILToNativeMapRundownKeywordMessage" value="JittedMethodILToNativeMapRundown" /> | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -12,6 +12,13 @@ | |||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| #include "gcrefmap.h" | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| int event_pipe_state = 0; | ||||||||||||||||||||||||||||||
| EventPipeSession* pEventPipeSession = nullptr; | ||||||||||||||||||||||||||||||
| uint64_t sessionId = (uint64_t)-1; | ||||||||||||||||||||||||||||||
| bool gcGenAnalysis = false; | ||||||||||||||||||||||||||||||
| int64_t gcGenAnalysisGen = 999; | ||||||||||||||||||||||||||||||
| int64_t gcGenAnalysisBytes = 0; | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| void GCToEEInterface::SuspendEE(SUSPEND_REASON reason) | ||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||
| WRAPPER_NO_CONTRACT; | ||||||||||||||||||||||||||||||
|
|
@@ -22,6 +29,43 @@ void GCToEEInterface::SuspendEE(SUSPEND_REASON reason) | |||||||||||||||||||||||||||||
| _ASSERTE(reason == SUSPEND_FOR_GC || reason == SUSPEND_FOR_GC_PREP); | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| g_pDebugInterface->SuspendForGarbageCollectionStarted(); | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| if (GetIntConfigValue("GCGenAnalysisGen", nullptr, &gcGenAnalysisGen)) | ||||||||||||||||||||||||||||||
cshung marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||
| if (GetIntConfigValue("GCGenAnalysisBytes", nullptr, &gcGenAnalysisBytes)) | ||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||
| gcGenAnalysis = true; | ||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||
| if (gcGenAnalysis && event_pipe_state == 0) | ||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||
| event_pipe_state = 1; | ||||||||||||||||||||||||||||||
| LPCWSTR outputPath = nullptr; | ||||||||||||||||||||||||||||||
| outputPath = W("trace.nettrace"); | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
| void EventPipe::EnableViaEnvironmentVariables() | |
| { | |
| STANDARD_VM_CONTRACT; | |
| if (CLRConfig::GetConfigValue(CLRConfig::INTERNAL_EnableEventPipe) != 0) | |
| { | |
| CLRConfigStringHolder eventpipeConfig(CLRConfig::GetConfigValue(CLRConfig::INTERNAL_EventPipeConfig)); | |
| CLRConfigStringHolder configOutputPath(CLRConfig::GetConfigValue(CLRConfig::INTERNAL_EventPipeOutputPath)); | |
| uint32_t eventpipeCircularBufferMB = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_EventPipeCircularMB); | |
| LPCWSTR outputPath = nullptr; | |
| if (configOutputPath == NULL) | |
| { | |
| outputPath = W("trace.nettrace"); | |
| } |
cshung marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
cshung marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1091,7 +1091,7 @@ bool HeapWalkHelper(Object * pBO, void * pvContext) | |
| OBJECTREF * arrObjRef = NULL; | ||
| size_t cNumRefs = 0; | ||
| bool bOnStack = false; | ||
| MethodTable * pMT = pBO->GetMethodTable(); | ||
| MethodTable * pMT = pBO->GetGCSafeMethodTable(); | ||
|
||
|
|
||
| ProfilerWalkHeapContext * pProfilerWalkHeapContext = (ProfilerWalkHeapContext *) pvContext; | ||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.