Skip to content

Releases: microsoft/perfview

PerfView and TraceEvent 3.2.2

10 Apr 01:05
ffa46a1

Choose a tag to compare

What's Changed

  • Fix PDB Symbol Resolution for Unmerged Windows Traces by @brianrob in #2407

Full Changelog: v3.2.1...v3.2.2

PerfView and TraceEvent 3.2.1

06 Apr 20:55
543e9e9

Choose a tag to compare

Native and R2R Symbol Download and Parsing Now Available

As of this release, if you capture a trace using dotnet-trace collect-linux or record-trace, native and R2R symbols can now be downloaded and resolved at analysis time. All .NET symbols (both native and R2R) are available on the Microsoft Symbol Server. Additionally, many Azure Linux symbol files are available on the Microsoft Symbol Server. For those targeting other distros, PerfView and TraceEvent are capable of pulling those symbol files from local directories by adding a local symbol path pointing to the files.

Most of the work for this was completed in PerfView and TraceEvent 3.2.1 with the final required fixes present in this release.

What's Changed

  • Optimize nettrace-to-TraceLog Conversion by @brianrob in #2403
  • Embed missing System.Text.Json transitive dependencies in PerfView by @brianrob in #2404

Full Changelog: v3.2.0...v3.2.1

PerfView and TraceEvent 3.2.0

31 Mar 00:26
696960c

Choose a tag to compare

What's Changed

  • Fix Debug.Assert failures in SpeedScope tests and DynamicTraceEventParser by @brianrob in #2368
  • Add TraceParserGen.Tests project and fix code generation bugs by @Copilot in #2308
  • Update UsersGuide.htm by @AftabAnsari10662 in #2370
  • Strip .il and .ni suffixes from TraceModuleFile.Name by @leculver in #2364
  • Handle provider names that start with a numeric digit. by @brianrob in #2369
  • Dispose WebView2 controls before Environment.Exit to prevent finalizer crash by @brianrob in #2371
  • Refactor GetManifestForRegisteredProvider to use XmlWriter by @Copilot in #2353
  • docs: Add investigation guidance for JIT-inlined missing stack frames by @Copilot in #2377
  • Fix spurious BROKEN frame at top of Linux thread stacks in CPU Stacks viewer by @Copilot in #2375
  • Fix NRE in AddUniversalDynamicSymbol for invalid symbol address ranges by @brianrob in #2376
  • Add missing authority parameter to log by @hoyosjs in #2379
  • Replace individual code owners with microsoft/perfview-reviewers group by @brianrob in #2381
  • Fix Dynamic Symbol Resolution for Mappings Shared Across Multiple Processes in Universal Traces by @brianrob in #2380
  • Implement Symbol Demanglers for Linux Binaries by @brianrob in #2383
  • Fix NullReferenceException race condition in TraceLog.AllocLookup/FreeLookup by @Copilot in #2387
  • Add typed schema for AllocationSampled (EventID 303, .NET 10+) in ClrTraceEventParser by @Copilot in #2388
  • Add ElfSymbolModule for Parsing ELF Symbol Tables by @brianrob in #2384
  • Update BDN to latest version. by @cincuranet in #2389
  • Fixed overflow when working with large dumps by @remilema in #2399
  • Fix XamlMessageBox STA Threading Crash from Background Threads by @brianrob in #2400
  • Add ELF Symbol Resolution for Linux .nettrace Traces by @brianrob in #2397
  • Add Missing WCF Event Templates by @brianrob in #2390

New Contributors

Full Changelog: v3.1.30...v3.2.0

PerfView and TraceEvent 3.1.30

20 Feb 17:55
498a0bb

Choose a tag to compare

What's Changed

  • doc: fix typos by @chinwobble in #2359
  • Fix SourceLink parsing to support both wildcard and exact path mappings by @ivberg in #2355
  • add horizontal scrolling to eventviewer by @logangeorge01 in #2361
  • Add SHA-384 and SHA-512 hash algorithm support for PDB checksums by @Copilot in #2366

New Contributors

Full Changelog: v3.1.29...v3.1.30

PerfView and TraceEvent 3.1.29

28 Jan 21:09
b3caefb

Choose a tag to compare

What's Changed

  • Warn users when circular buffer overflow causes missing type info in allocation views for selected processes by @Copilot in #2326
  • Special-Case BitMask Parsing by @brianrob in #2327
  • Refactor PEFile and PEHeader to use ReadOnlySpan exclusively with zero-copy buffer sharing by @Copilot in #2317
  • Fix cdbstack parser dropping last sample and missing metrics by @Copilot in #2329
  • Fix unhandled ArgumentOutOfRangeException when exporting FlameGraph with unrendered canvas by @Copilot in #2339
  • Add guidance for capturing ETW traces in Kubernetes pods by @Copilot in #2344
  • Fix merge command line order in kubernetes documentation by @Copilot in #2346
  • Fix GetRegisteredOrEnabledProviders() documentation claiming list is small by @Copilot in #2348
  • Fix duplicate stringTable elements in instrumentation manifest by @Copilot in #2347
  • Fix Histogram.AddMetric losing values after single-bucket to array transition by @Copilot in #2337
  • Fix clipboard copy formatting based on selection dimensions in Stack Viewer by @Copilot in #2332
  • Fix XML escaping in GetManifestForRegisteredProvider by @Copilot in #2351
  • Fix race condition in ProviderNameToGuid causing ERROR_INSUFFICIENT_BUFFER crashes by @Copilot in #2357

Full Changelog: v3.1.28...v3.1.29

PerfView and TraceEvent 3.1.28

30 Oct 22:33
5fc5e08

Choose a tag to compare

What's Changed

Full Changelog: v3.1.26...v3.1.28

PerfView and TraceEvent 3.1.26

10 Oct 21:57
638121e

Choose a tag to compare

Roll-up through 2025/10/10.

  • Only dispose non-null handles in ETWTraceEventSource #2291
  • Small cleanup in NettraceUniversalConverter #2292
  • Fix hyperlink focus visibility in dark mode and improve keyboard navigation #2295
  • Gracefully handle invalid characters in PATH #2296
  • Fix copying First/Last columns with pipe symbols to work in time range input #2304

PerfView and TraceEvent 3.1.24

27 Aug 12:57
c63bac3

Choose a tag to compare

Roll-up through 2025/08/26.

  • Implement NuGet Central Package Version Management [#2262]
  • Fix broken stacks warning for universal traces [#2268]
  • Fix jitted code symbols in universal traces to show assembly names instead of memfd:doublemapper [#2269]
  • Use themed background brush for menu and filter [#2272]
  • Improve rendering and dark mode [#2274]
  • Implement configurable symbol server authentication with /SymbolsAuth command line argument for PerfView and HeapDump [#2278]
  • Add a themed dialog [#2276]
  • Fix regression: "Goto Item in Callers/Callees" now accumulates across all threads [#2284]
  • Fix parsing issues and add support for additional events to the Linux perf text file parser [#2286]
  • Fix TraceLog live session RelatedActivityID/ContainerID corruption by preserving ExtendedData [#2285]
  • NetTrace LabelList metadata overrides and metadata flushing [#2281]
  • Fix NullReferenceException in ProviderBrowser.LevelSelected when deselecting level [#2289]

PerfView and TraceEvent 3.1.23

11 Jul 22:32
bc9c1c6

Choose a tag to compare

Roll-up through 2025/07/11.

  • Fixed TraceEvent CaptureState API to support previously unsupported keyword configurations. [#2222]
  • Added Exception Stacks view for .nettrace files to enhance exception diagnostics. [#2223]
  • Corrected outdated documentation references to "GC Heap Alloc Stacks". [#2224]
  • Fixed off-by-one error in P/Invoke buffer handling for Windows volume events. [#2227]
  • Fixed broken links in the PerfView user guide. [#2225]
  • Improved error handling by throwing when TdhEnumerateProviders fails, enabling better diagnostics. [#2177]
  • Added AutomationProperties.Name to the Process Selection DataGrid for improved accessibility. [#2239]
  • Fixed focus indicator visibility for hyperlinks in dark mode and high contrast themes. [#2235]
  • Addressed NullReferenceException in Anti-Malware view. [#2233]
  • Fixed WebView2 crash on close by implementing proper disposal pattern. [#2230]
  • Added support for native AOT gcdumps, expanding compatibility with modern .NET workloads. [#2242]
  • Fixed NVDA screen reader issue where Theme menu items did not announce selection state. [#2237]
  • Extended PredefinedDynamicTraceEventParser to support dynamic events from additional sources. [#2232]
  • Implemented MSFZ symbol format support in SymbolReader. [#2244]
  • Removed usage of DefaultAzureCredential, simplifying authentication dependencies. [#2255]
  • Added option to hide TimeStamp columns in the EventWindow View menu. [#2247]
  • Fixed NVDA screen reader reporting incorrect list count for File menu separators. [#2257]
  • Fixed unhandled exception when double-clicking in scroll bar area with no content. [#2254]
  • Fixed universal symbol conversion for overlapping mappings. [#2252]
  • Fixed TraceEvent.props to respect ProcessorArchitecture when RuntimeIdentifier is set. [#2249]

PerfView and TraceEvent 3.1.22

05 Jun 18:26
3af4abd

Choose a tag to compare

Roll-up through 2025/06/04.

  • Added GC Heap Analyzer support for .nettrace files to enhance memory analysis workflows. [#2216]
  • Introduced PredefinedDynamicTraceEventParser for known TraceLogging events, improving trace event parsing. [#2220]
  • Enabled selection of process trees in the process selection dialog for multi-process analysis, allowing deeper inspection across related processes. [#2195]
  • Implemented sorting for the Duration column in the process selection dialog using TotalDurationSeconds, improving usability. [#2194]
  • Improved NetTrace parameter parsing for better command-line flexibility. [#2200]
  • Fixed GetActiveSessionNames to handle ERROR_MORE_DATA, resolving session enumeration issues. [#2196]
  • Fixed ObjectDisposedException when opening Net OS Heap Alloc Stacks, improving stability. [#2212]
  • Fixed null reference exception in GenFragmentationPercent method, enhancing reliability. [#2211]
  • Fixed TreeView auto-expansion when opening trace files. [#2218]
  • Fixed StackViewer issue where "Set Time Range" reset "Goto Items by callees". [#2208]
  • Fixed markdown table formatting when copying from the stack viewer. [#2203]
  • Fixed TraceEvent NuGet package to exclude Windows-specific native DLLs. [#2215]
  • Removed PDB generation for .NET Core assemblies using CrossGen, reducing build overhead. [#2202]
  • Made symbol server timeout configurable and removed dead code in SymbolReader. [#2209]
  • Changed help ribbons to use textblocks, enabling tab navigation. [#2201]