Commit Graph

18 Commits

Author SHA1 Message Date
Catalin Dragoiu
f10f0edcf5 [Insights] Fix crash when receiving allocations without callstacks due to late connect.
#rb Johan.Berg
#preflight 6230b4d64134af5cef7f3092

[CL 19387355 by Catalin Dragoiu in ue5-main branch]
2022-03-15 12:14:28 -04:00
ionut matasaru
3b4555fa96 [Insights]
- Changed CallstackId to 32 bits also for CallstacksProvider API.
  - Also fixed static analysis warning (false positive).

#rb Johan.Berg
#preflight 62023f0be85c7a08bbde4499

[CL 18900490 by ionut matasaru in ue5-main branch]
2022-02-08 05:54:58 -05:00
ionut matasaru
d2f594bb15 [Insights]
- Memory Insights: Added analysis support for "free callstack" for an allocation (i.e. callstack when an allocation if freed).
  - Memory Insights: Switched CallstackId to 32 bit and moved the resolving of "id to pointer" outside of mem queries. This allows us to add the second callstack id and also ids for future metadata without increasing the size of FAllocationItem struct (from AllocationProvider).
  - Memory Insights: Refactored code re ThreadId and Tracker passed from AllocationAnalysis to AllocationProvider.
  - Memory Insights: Refactored code re CallstackProvider to map a CallstackId directly as an index into array of callstacks.

#rb Johan.Berg
#preflight 6201460a6773a3612898c4de

[CL 18886419 by ionut matasaru in ue5-main branch]
2022-02-07 11:28:45 -05:00
johan berg
5eacd9893e [Insights] Make specific no callstack entry
Allows us to display allocations that don't have a callstack (e.g. from TraceMalloc) compared to callstack that have a callstack id, but we couldn't find the id.
#preflight 61e01fc3250b9537f7708c1d

#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18595807 in //UE5/Release-5.0/... via CL 18595813 via CL 18595822
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18596763 by johan berg in ue5-main branch]
2022-01-13 10:13:55 -05:00
Johan Berg
1dd486506e Analyzer support for additional memory spaces
Changes to analysis wrt to the changelist "Memory tracing additional heaps".

#rb ionut.matasaru
#preflight 614b43594cff690001754450

[CL 17596772 by Johan Berg in ue5-main branch]
2021-09-22 12:23:24 -04:00
ionut matasaru
a8f0b00b77 [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

[CL 16967698 by ionut matasaru in ue5-main branch]
2021-07-27 08:18:31 -04:00
Johan Berg
e2d01de1a5 [Insights] Always return a valid callstack, even if it's not found.
Instead of returning a nullptr, return a  placeholder callstack when an unknown callstack has been requested.

#rb ionut.matasaru
#rnx
#preflight 60bdfeed29082d00015d3ac6

[CL 16569026 by Johan Berg in ue5-main branch]
2021-06-07 08:18:57 -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
martin ridgers
884006f526 Segfault fix. The moduleprovider is conditionally created depending on the platform that is hosting Unreal Insights and the trace's symbol format. As such it could be null.
#ushell-cherrypick of 15872322 by Martin.Ridgers
#jira ue-110030
#rb johan.berg
#rnx

#ROBOMERGE-SOURCE: CL 15872554 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15872771 by martin ridgers in ue5-main branch]
2021-03-31 06:10:22 -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
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
aba1a531d7 [Insights] Fix initialization issue on clang.
#rnx
#rb none

[CL 15407557 by Johan Berg in ue5-main branch]
2021-02-15 12:29:03 -04:00
Johan Berg
fa8270901d [Insights] Handle cases where module provider doesn't exist.
Handle cases where module provider doesn't exist, for example when using the application on a platform that doesn't supportt the required symbol resolving. Symbol field then falls back to a shared const value.

#rb ionut.matasaru
#jira UE-108461

[CL 15406577 by Johan Berg in ue5-main branch]
2021-02-15 10:31:58 -04:00
Johan Berg
a61bac6a0b [Insights] Remove shift of callstack id. Matching runtime shift has already been removed.
#rnx
#rb martin.ridgers

[CL 15048324 by Johan Berg in ue5-main branch]
2021-01-12 09:02:00 -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
Jurre deBaare
f074fb8c73 Numerous non-unity fixes
#rb none
#fyi Matt.Kuhlenschmidt, jeanmichel.dignard, Mike.Zyracki, Helge.Mathee, Brett.Miller, Simon.Tovey, Alexis.Matte, Steve.Smith, Sergio.Gardeazabal, Patrick.Boutot, Martin.Ridgers, Brooke.Hubert, Patrick.Enfedaque, Roey.Borsteinas, JeanFrancois.Dube, Jose.Villaroel, John.Hable, Danny.Couture, Zach.Bethel

[CL 14786858 by Jurre deBaare in ue5-main branch]
2020-11-19 11:19:38 -04:00
Martin Ridgers
5208379ed7 Moved the TraceServices module into its own namespace.
#rb im
#rnx

[CL 14743799 by Martin Ridgers in ue5-main branch]
2020-11-13 05:29:37 -04:00
Johan Berg
ba14396b49 Added callstack analysis in TraceServices
Add CallstacksAnalyzer and CallbacksProvider which enables users to query traced callstack ids.

#rb martin.ridgers

[CL 14587000 by Johan Berg in ue5-main branch]
2020-10-27 09:55:35 -04:00