@@ -71,6 +71,7 @@ json::Value ModuleStats::ToJSON() const {
71
71
module.try_emplace (" debugInfoHadIncompleteTypes" ,
72
72
debug_info_had_incomplete_types);
73
73
module.try_emplace (" symbolTableStripped" , symtab_stripped);
74
+ module.try_emplace (" symbolsLoaded" , num_symbols_loaded);
74
75
if (!symfile_path.empty ())
75
76
module.try_emplace (" symbolFilePath" , symfile_path);
76
77
@@ -293,7 +294,8 @@ llvm::json::Value DebuggerStats::ReportStatistics(
293
294
double debug_parse_time = 0.0 ;
294
295
double debug_index_time = 0.0 ;
295
296
uint32_t symtabs_loaded = 0 ;
296
- uint32_t symtabs_saved = 0 ;
297
+ uint32_t symtabs_loaded_from_cache = 0 ;
298
+ uint32_t symtabs_saved_to_cache = 0 ;
297
299
uint32_t debug_index_loaded = 0 ;
298
300
uint32_t debug_index_saved = 0 ;
299
301
uint64_t debug_info_size = 0 ;
@@ -309,6 +311,7 @@ llvm::json::Value DebuggerStats::ReportStatistics(
309
311
uint32_t num_modules_with_variable_errors = 0 ;
310
312
uint32_t num_modules_with_incomplete_types = 0 ;
311
313
uint32_t num_stripped_modules = 0 ;
314
+ uint32_t num_symbols_loaded = 0 ;
312
315
for (size_t image_idx = 0 ; image_idx < num_modules; ++image_idx) {
313
316
Module *module = target != nullptr
314
317
? target->GetImages ().GetModuleAtIndex (image_idx).get ()
@@ -318,12 +321,15 @@ llvm::json::Value DebuggerStats::ReportStatistics(
318
321
module_stat.symtab_index_time = module->GetSymtabIndexTime ().get ().count ();
319
322
Symtab *symtab = module->GetSymtab (/* can_create=*/ false );
320
323
if (symtab) {
324
+ module_stat.num_symbols_loaded = symtab->GetNumSymbols ();
325
+ num_symbols_loaded += module_stat.num_symbols_loaded ;
326
+ symtabs_loaded++;
321
327
module_stat.symtab_loaded_from_cache = symtab->GetWasLoadedFromCache ();
322
328
if (module_stat.symtab_loaded_from_cache )
323
- ++symtabs_loaded ;
329
+ ++symtabs_loaded_from_cache ;
324
330
module_stat.symtab_saved_to_cache = symtab->GetWasSavedToCache ();
325
331
if (module_stat.symtab_saved_to_cache )
326
- ++symtabs_saved ;
332
+ ++symtabs_saved_to_cache ;
327
333
}
328
334
SymbolFile *sym_file = module->GetSymbolFile (/* can_create=*/ false );
329
335
if (sym_file) {
@@ -393,8 +399,9 @@ llvm::json::Value DebuggerStats::ReportStatistics(
393
399
json::Object global_stats{
394
400
{" totalSymbolTableParseTime" , symtab_parse_time},
395
401
{" totalSymbolTableIndexTime" , symtab_index_time},
396
- {" totalSymbolTablesLoadedFromCache" , symtabs_loaded},
397
- {" totalSymbolTablesSavedToCache" , symtabs_saved},
402
+ {" totalSymbolTablesLoaded" , symtabs_loaded},
403
+ {" totalSymbolTablesLoadedFromCache" , symtabs_loaded_from_cache},
404
+ {" totalSymbolTablesSavedToCache" , symtabs_saved_to_cache},
398
405
{" totalDebugInfoParseTime" , debug_parse_time},
399
406
{" totalDebugInfoIndexTime" , debug_index_time},
400
407
{" totalDebugInfoIndexLoadedFromCache" , debug_index_loaded},
@@ -407,6 +414,7 @@ llvm::json::Value DebuggerStats::ReportStatistics(
407
414
num_modules_with_incomplete_types},
408
415
{" totalDebugInfoEnabled" , num_debug_info_enabled_modules},
409
416
{" totalSymbolTableStripped" , num_stripped_modules},
417
+ {" totalSymbolsLoaded" , num_symbols_loaded},
410
418
};
411
419
412
420
if (include_targets) {
0 commit comments