Skip to content

Commit

Permalink
Make sure s_currentGenerationTable is safe for profiler attach (#78937)
Browse files Browse the repository at this point in the history
Co-authored-by: Andrew Au <andrewau@microsoft.com>
  • Loading branch information
github-actions[bot] and cshung committed Nov 29, 2022
1 parent 6f164d1 commit 44e68e8
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/coreclr/vm/proftoeeinterfaceimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -901,7 +901,7 @@ void GenerationTable::Refresh()

// This is the table of generation bounds updated by the gc
// and read by the profiler.
static GenerationTable *s_currentGenerationTable;
static GenerationTable *s_currentGenerationTable = nullptr;

// This is just so we can assert there's a single writer
#ifdef ENABLE_CONTRACTS
Expand Down Expand Up @@ -931,7 +931,6 @@ void __stdcall UpdateGenerationBounds()
// Notify the profiler of start of the collection
if (CORProfilerTrackGC() || CORProfilerTrackBasicGC())
{

if (s_currentGenerationTable == nullptr)
{
EX_TRY
Expand Down Expand Up @@ -965,7 +964,10 @@ void __stdcall ProfilerAddNewRegion(int generation, uint8_t* rangeStart, uint8_t
#ifdef PROFILING_SUPPORTED
if (CORProfilerTrackGC() || CORProfilerTrackBasicGC())
{
s_currentGenerationTable->AddRecord(generation, rangeStart, rangeEnd, rangeEndReserved);
if (s_currentGenerationTable != nullptr)
{
s_currentGenerationTable->AddRecord(generation, rangeStart, rangeEnd, rangeEndReserved);
}
}
#endif // PROFILING_SUPPORTED
RETURN;
Expand Down

0 comments on commit 44e68e8

Please sign in to comment.