report the entire generation table in EnumWksGlobalMemoryRegions and EnumSvrGlobalMem...
authorDavid Mason <davmason@microsoft.com>
Wed, 3 Oct 2018 19:52:32 +0000 (12:52 -0700)
committerGitHub <noreply@github.com>
Wed, 3 Oct 2018 19:52:32 +0000 (12:52 -0700)
src/debug/daccess/request.cpp
src/debug/daccess/request_svr.cpp

index 3a497b1..3607916 100644 (file)
@@ -3838,7 +3838,7 @@ ClrDataAccess::EnumWksGlobalMemoryRegions(CLRDataEnumMemoryFlags flags)
     Dereference(g_gcDacGlobals->finalize_queue).EnumMem();
 
     // Enumerate the entire generation table, which has variable size
-    size_t gen_table_size = g_gcDacGlobals->generation_size * (*g_gcDacGlobals->max_gen + 1);
+    size_t gen_table_size = g_gcDacGlobals->generation_size * (*g_gcDacGlobals->max_gen + 2);
     DacEnumMemoryRegion(dac_cast<TADDR>(g_gcDacGlobals->generation_table), gen_table_size);
 
     if (g_gcDacGlobals->generation_table.IsValid())
index 40e3600..8b3f11f 100644 (file)
@@ -224,7 +224,7 @@ ClrDataAccess::EnumSvrGlobalMemoryRegions(CLRDataEnumMemoryFlags flags)
     {
         DPTR(dac_gc_heap) pHeap = HeapTableIndex(g_gcDacGlobals->g_heaps, i);
 
-        size_t gen_table_size = g_gcDacGlobals->generation_size * (*g_gcDacGlobals->max_gen + 1);
+        size_t gen_table_size = g_gcDacGlobals->generation_size * (*g_gcDacGlobals->max_gen + 2);
         DacEnumMemoryRegion(dac_cast<TADDR>(pHeap), sizeof(dac_gc_heap));
         DacEnumMemoryRegion(dac_cast<TADDR>(pHeap->finalize_queue), sizeof(dac_finalize_queue));
         DacEnumMemoryRegion(dac_cast<TADDR>(pHeap->generation_table), gen_table_size);