Commit Graph

21 Commits

Author SHA1 Message Date
ionut matasaru
0fa04bdb8e [Insights]
- Added "Discovered" status for symbol resolving of a module.
  - Fixed deadlock for analysis thread when session completes. This bug also didn't allowed Insights app to terminate when closed. The bug occurs for relatively short mem trace sessions when the session analysis completes before callstack resolving fully loads all modules.
  - Fixed issue where number of Discovered symbols for a module was lower than Resolved + Failed. Note: This issue might still occur when a module is reloaded, but should not occur anymore for normal callstack resolving.

#rb Johan.Berg
#preflight 62288cd031133a23da76cf94

[CL 19320366 by ionut matasaru in ue5-main branch]
2022-03-09 10:40:47 -05:00
catalin dragoiu
fe24a28f7d Fix non unity compile errors
#rb trivial
#preflight 61d6c3cd932a02483cd0eac5

#ROBOMERGE-AUTHOR: catalin.dragoiu
#ROBOMERGE-SOURCE: CL 18529677 in //UE5/Release-5.0/... via CL 18529685
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18529688 by catalin dragoiu in ue5-release-engine-test branch]
2022-01-06 05:46:18 -05:00
johan berg
44f067c4b9 Fix Mac compile issues
#preflight 61d59fdb6511bc498e458743

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18517991 in //UE5/Release-5.0/... via CL 18517996
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18518005 by johan berg in ue5-release-engine-test branch]
2022-01-05 08:45:47 -05:00
johan berg
77c610a6b8 [Insights] Add symbol search paths and reload module triggers
* Implements functionality to search for symbols in a stack of search directories. Search directories can be added from configuration, environment variables or explicitly specified by user.
 * Exposes module information and ability to enumerate detected modules.
 * Adds functionality to attempt loading symbols for a module in a specific directory.

#rb ionut.matasaru, martins.mozeiko
#jira UE-137221
#preflight 61d56928932a02483cc346f7
#preflight 61d571e0ec35d1b940dad984

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18517208 in //UE5/Release-5.0/... via CL 18517221
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18517223 by johan berg in ue5-release-engine-test branch]
2022-01-05 05:39:03 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
martins mozeiko
f12af98ed8 Enabled memory tracking with callstacks for PS4/5
Implementation details:
- PS4 & PS5 uses dwarf symbol format and uses Syms symbol resolver.
- To resolve symbols the path to folder where .self file is built currently must be specified in UE_INSIGHTS_SYMBOL_PATH env variable for Insights.
- Multiple paths can be separated by ; in this variable.
- Build for PS5 does not seem to have PLATFORM_PS5 define, I used defined(__PS5__).
- PS5 runtime collects and sends callstacks, but Syms resolver does not support dwarf v5 format yet, which is used on PS5 toolchain.

#rb none
#preflight 6112ead49c7bb10001bc63fc

#ROBOMERGE-SOURCE: CL 17128247 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17128270 by martins mozeiko in ue5-release-engine-test branch]
2021-08-10 20:07:09 -04:00
ionut matasaru
84150030be [Insights]
- TraceServices: Changed ReadNetProfilerProvider, ReadMemoryProvider, ReadDiagnosticsProvider to return a pointer to the respective provider (instead of a reference). Can return nullptr. The UI should not assume the provider exists.
  - TraceServices: Added GetNetProfilerProviderName, GetMemoryProviderName, GetDiagnosticsProviderName, GetAllocationsProviderName to return name of respective provider.
  - TraceServices: Added ReadModuleProvider + GetModuleProviderName, ReadCallstacksProvider + GetCallstacksProviderName to access respective providers.
  - TraceServices: Added a default empty implementation to IModule for GenerateReports, GetLoggers and GetCommandLineArgument.
  - TraceServices: Changed FAnalysisService::StartAnalysis to not create default providers for Memory (LLM Stats), NetProfiler and Diagnostics, but to allow the respective modules (FMemoryModule, FNetProfilerModule, FDiagnosticsModule) to create the providers.
  - TraceInsights: Fixed UI code to check if the Memory, NetProfiler and Diagnostics provider are available.

#rb Catalin.Dragoiu, Johan.Berg

#ROBOMERGE-SOURCE: CL 16967698 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16967704 by ionut matasaru in ue5-release-engine-test branch]
2021-07-27 08:19:49 -04:00
ionut matasaru
e69885e405 [TraceServices]
- Added virtual destructor to all Provider classes.
  - Added "explicit" to several constructors of Provider classes.

#rb Catalin.Dragoiu

#ROBOMERGE-SOURCE: CL 16924223 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16924234 by ionut matasaru in ue5-release-engine-test branch]
2021-07-22 11:24:23 -04:00
Johan Berg
3dfaaddc5c [Insights] Fix log output
#rnx
#rb none

[CL 16548036 by Johan Berg in ue5-main branch]
2021-06-03 11:34:07 -04:00
Johan Berg
1f4e3c2be1 [Insights] Persistent symbol storage for module provider
Implements persistent symbol storage using the cache layer. Symbols are stored in a cached paged array and with references to a cached string store for module and symbol names and filenames. Previously saved symbols are loaded at the start of the session and any new symbols that are discovered during the session is stored on close.

#rb ionut.matasaru

[CL 16512568 by Johan Berg in ue5-main branch]
2021-06-01 06:05:43 -04:00
Johan Berg
77f062ae76 [Insights] Improve callstack display when frame cannot be displayed
Previously the name was only displayed when results was successful. With this change we use the additional information in the status code to display module name and reason why the symbol name could not be resolved.

#jira UE-110008
#rb ionut.matasaru

[CL 16020408 by Johan Berg in ue5-main branch]
2021-04-15 09:39:46 -04:00
ionut matasaru
e07bc6a7dc [Insights]
- Fixed/added the compile time macros to enable Symslib / DbgHelp resolvers.
  - Fixed crash in Symslib resolver when analysis completes (thread safety for array with mapped file regions and handles).
  - Attempt to fix a crash in Symslib resolver when loading a module (thread safety).
  - Minor code style / coding standards fixes.

#rb Johan.Berg

[CL 15930686 by ionut matasaru in ue5-main branch]
2021-04-06 11:04:09 -04:00
Johan Berg
78341a69b2 [Insights] RAD symbols resolver implementation
Implements a resolver using RAD symbol parsing library.

#rb ionut.matasaru

[CL 15873323 by Johan Berg in ue5-main branch]
2021-03-31 07:56:27 -04:00
Johan Berg
9d4d18db77 [Insights] Frees symbol resources when complete
Added hooks to allow the symbol resolver to know when analysis is complete. At this point no more modules or symbol requests will come in and resources can be freed, releasing the file locks on pdb files.

#rb ionut.matasaru

[CL 15696572 by Johan Berg in ue5-main branch]
2021-03-15 10:43:52 -04:00
Johan Berg
7cbdf454bd Fix atomic static initialization
#rb none
#rnx
#robomerge release-5.0-earlyaccess

[CL 15643640 by Johan Berg in ue5-main branch]
2021-03-08 14:54:36 -04:00
Johan Berg
9d97c5d7e2 [Insights] Initialize symbol entries as pending.
#rnx
#rb none

[CL 15417220 by Johan Berg in ue5-main branch]
2021-02-16 09:32:56 -04:00
Johan Berg
8066f1123c [Insights] Rename QueryResult to ESymbolQueryResult
#rnx
#rb none

[CL 15416185 by Johan Berg in ue5-main branch]
2021-02-16 04:47:35 -04:00
Johan Berg
11ee2a9af3 [Insights] Add mismatch query result type and consolidate strings
#rb ionut.matasaru
#rnx

[CL 15406193 by Johan Berg in ue5-main branch]
2021-02-15 09:12:09 -04:00
Catalin Dragoiu
49677ab80a [Insights] Show symbol resolution status in MemAllocTreeView
#rb Ionut.Matasaru

[CL 15128002 by Catalin Dragoiu in ue5-main branch]
2021-01-18 05:51:01 -04:00
Catalin Dragoiu
d44b90a848 Fix non unity compile errors
#jira UE-105397,UE-105398
#rb none #rnx

[CL 15020861 by Catalin Dragoiu in ue5-main branch]
2021-01-08 13:39:31 -04:00
Catalin Dragoiu
4020586159 Callstack resolving for Insights initial commit
#rb none

[CL 14998219 by Catalin Dragoiu in ue5-main branch]
2021-01-06 05:44:12 -04:00