Commit Graph

26 Commits

Author SHA1 Message Date
josh adams
46a830d6b4 - Replacing many uses of LoadGlobalIniFile and LoadExternalIniFile with FCOnfigContext
#rb matt.peters
#p4v-preflight-copy 20293528
#preflight 629665d15238916c514359ad

[CL 20441581 by josh adams in ue5-main branch]
2022-05-31 16:25:06 -04:00
Josh Adams
98263b82d4 - Updated symslib for getting symbol info by name instead of location
#rb Martins.Mozeiko
#jira none
#preflight 62708a6fc740179e4a31fa1c

[CL 20019429 by Josh Adams in ue5-main branch]
2022-05-02 21:57:33 -04:00
ionut matasaru
024b24d27b [Insights] Fixed NonUnity compile errors.
#jira UE-148082
#rb none
#preflight 624bfe75b6084b983285be6f

[CL 19621900 by ionut matasaru in ue5-main branch]
2022-04-05 04:38:50 -04:00
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
johan berg
95d2ab8815 [Insights] Fix parsing of environment variables for SymsLibResolver.
Previously only enviroment variables paths that contained ';' very correctly parsed. And even in that case the last paths was discarded.

#rb none
#jira UE-140001
#preflight 61eec605aa3f15faa57afefe

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18709084 in //UE5/Release-5.0/... via CL 18709097 via CL 18709326
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18709377 by johan berg in ue5-main branch]
2022-01-24 11:00:49 -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
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
martins mozeiko
ed0874aad1 Update SymsLib to latest version and minor code cleanup in SymslibResolver.
Includes fix for correctly zero-terminating stripped pdb symbol names.
Removes unneeded comparisons & useless calls when parsing or resolving symbols.

#rb Johan.Berg
#preflight 61b7b867841c179a331bcd05

#ROBOMERGE-AUTHOR: martins.mozeiko
#ROBOMERGE-SOURCE: CL 18449263 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v897-18405271)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18449269 by martins mozeiko in ue5-release-engine-test branch]
2021-12-13 17:00:54 -05:00
martins mozeiko
31a8981328 Update SymsLib to latest version and update SymsResolver for Insights.
Now it can resolve stripped pdb symbols, for example, which comes from Microsoft Symbol Server.
Insights will additionally use _NT_SYMBOL_PATH environment variable to lookup pdb files.

#rb Johan.Berg

#ROBOMERGE-AUTHOR: martins.mozeiko
#ROBOMERGE-SOURCE: CL 18330470 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 18330565 by martins mozeiko in ue5-release-engine-test branch]
2021-11-30 15:33:02 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -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
97c86b231b Check the build-id of elf file when resolving symbols in Insights
#rb Ionut.Matasaru

#ROBOMERGE-AUTHOR: martins.mozeiko
#ROBOMERGE-SOURCE: CL 17754001 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17754010 by martins mozeiko in ue5-release-engine-test branch]
2021-10-07 15:50:02 -04:00
martins mozeiko
16188337f1 Update syms library to latest version, includes dwarf5 support
#rb Ionut.Matasaru

#ROBOMERGE-AUTHOR: martins.mozeiko
#ROBOMERGE-SOURCE: CL 17694937 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17695152 by martins mozeiko in ue5-release-engine-test branch]
2021-10-01 15:16:28 -04:00
martins mozeiko
7343e55d12 Enable Windows ETW (context switches and stack sampling) and memory tracing on XSX.
Use Perf trace for context switches and stack sampling on PS4 and PS5.

#rb Ionut.Matasaru

#ROBOMERGE-SOURCE: CL 17277312 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17277323 by martins mozeiko in ue5-release-engine-test branch]
2021-08-23 17:40:14 -04:00
catalin dragoiu
1718e48dfe Fix non-unity error
#rb none #rnx

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

[CL 17152475 by catalin dragoiu in ue5-release-engine-test branch]
2021-08-12 11:09:06 -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
8396d98024 [Insights] Fixed formula used to compute number of symbols in a batch (when parallelizing symbol resolving).
#rb Johan.Berg

[CL 16568342 by ionut matasaru in ue5-main branch]
2021-06-07 07:13:30 -04:00
ionut matasaru
d8c3292fa1 Fixed arguments/formatting of UE_LOGs in TraceServices.
#rb Johan Berg

[CL 16365075 by ionut matasaru in ue5-main branch]
2021-05-18 06:04:50 -04:00
Johan Berg
d1b73155b5 [Insights] Make SymsLib cleanup task based
Move SymsLib cleanup to a task. In the destructor we need to wait for the task to complete. Add support to cancel tasks in order to handle cases where a lot of tasks are in flight on shutdown (for example when shutting down early in analysis).

#rb ionut.matasaru
#rnx

[CL 16034590 by Johan Berg in ue5-main branch]
2021-04-16 11:16:06 -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
Johan Berg
07a574fd30 [Insights] Fix off by one error with string store
#rb ionut.matasaru
#rnx
#jira UE-113457

[CL 16020042 by Johan Berg in ue5-main branch]
2021-04-15 08:39:36 -04:00
Johan Berg
405cfe4d69 [Insights] Reduce memory footprint of SymslibResolver
Reduces the memory footprint of the resolver by releasing all memory associated with each module once analysis is completed.

#rb ionut.matasaru
#rnx

[CL 16004256 by Johan Berg in ue5-main branch]
2021-04-14 08:58:53 -04:00
Johan Berg
5fef1a903e [Insights] Reduce stalls when analysing symbols
When parsing debug files and resolving symbols the RAD symbol resolver went very wide. This had two negative effects on performance:

* Module loading and symbol resolve tasks were scheduled together with Slate tasks, causing stuttering in rendering. With this change we move these tasks to the background threads since they are not time critical and to give preference to Slate rendering.
* Symbol resolves are very cheap compared to creating a task. With this change we batch resolve work in a fixed number of tasks.
* Resolve symbol tasks were competing for the string store lock. The ModuleProvider already handles symbol deduplication so each symbol string should already be unique. This change add a task local string allocator which does not have be thread-safe and can take advantage of batching by allocating memory in blocks.

#jira UE-113394
#rb ionut.matasaru
#rnx

[CL 16001877 by Johan Berg in ue5-main branch]
2021-04-14 03:07:29 -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
Catalin Dragoiu
f26c03ed77 Fix Non Unity Errors
#rb trivial #rnx

[CL 15899844 by Catalin Dragoiu in ue5-main branch]
2021-04-02 04:42:27 -04:00