Releases: microsoft/perfview
Release list
PerfView and TraceEvent 3.2.8
What's Changed
- Add TraceLog.TrimLiveSessionState to bound real time call stack growth by James Crosswell (@jamescrosswell) in #2452
- Binary symbol-server lookup 404s for /Brepro builds with leading-zero by ivberg in #2417
- Add MethodDetails CTF event mapping for LTTng trace support by Ben {chmark} Adams (@benaadams) in #2392
- Enable GitHub Source Link for mirrored official builds by Brian Robbins (@brianrob) in #2459
- Harden GNU Debuglink Parsing And Path Handling by Brian Robbins (@brianrob) in #2462
- Require Authorization Before Downloading Source Files by Brian Robbins (@brianrob) in #2463
- Validate ELF Build IDs Before Symbol-Cache Path Construction by Brian Robbins (@brianrob) in #2461
- Harden dynamic payload length parsing by Marius Sutara (@msutara) in #2468
- Fix WebView2 Initialization In Read-Only PerfView Installations by Brian Robbins (@brianrob) in #2469
- Use Microsoft AntiSSRF Library for PerfView HTTP Requests by Brian Robbins (@brianrob) in #2470
New Contributors
- James Crosswell (@jamescrosswell) made their first contribution in #2452
- Ben {chmark} Adams (@benaadams) made their first contribution in #2392
- Marius Sutara (@msutara) made their first contribution in #2468
Full Changelog: v3.2.6...v3.2.8
PerfView and TraceEvent 3.2.6
What's Changed
- Fix StackOverflow on malformed EventPipe object type length by Brian Robbins (@brianrob) in #2444
- Fix AccessViolation on malformed MethodILToNativeMap entry count by Brian Robbins (@brianrob) in #2445
- Fix infinite loop in LinuxPerfScriptEventParser on truncated sched_switch lines by Brian Robbins (@brianrob) in #2446
- Support TraceLogging formatting hints by Christopher Warrington (@chwarr) in #2443
- Improve Keyboard Focus Indicator Contrast by Brian Robbins (@brianrob) in #2448
- Enable Escape key dismissal for PerfView help by Brian Robbins (@brianrob) in #2450
- Fix Main Window Keyboard Focus Order by Brian Robbins (@brianrob) in #2449
- Add Accessible Label To Directory Search Field by Brian Robbins (@brianrob) in #2447
- Add support for showing stacks from selected events by Paul Dorn (@paulusakademius) in #2418
- Fix Crash Opening OS Heap Allocation Stacks by Brian Robbins (@brianrob) in #2453
- Bump version to 3.2.6 by Brian Robbins (@brianrob) in #2454
- Improve Stack Names For Dynamically Generated JIT Helpers by Brian Robbins (@brianrob) in #2455
New Contributors
- Christopher Warrington (@chwarr) made their first contribution in #2443
Full Changelog: v3.2.5...v3.2.6
PerfView and TraceEvent 3.2.5
What's Changed
- Fix spurious BROKEN frames on musl-based Linux stacks by Brian Robbins (@brianrob) in #2437
- Fix InMemoryCircularBuffer merge failure with large CircularMB by Jiri Cincura ↹ (@cincuranet) in #2439
- Fix GC dynamic ETLX replay by Brian Robbins (@brianrob) in #2440
- Enable W4 and warnings as errors for C++ projects by Brian Robbins (@brianrob) in #2441
- Support embedded portable PDBs for managed symbol resolution by Jeremy Kuhne (@JeremyKuhne) in #2434
Full Changelog: v3.2.4...v3.2.5
PerfView and TraceEvent 3.2.4
Security
This release contains security hardening fixes for a number of malformed-input parsing and path-traversal vulnerabilities:
- Bounds-checking for malformed event payloads in the BPerf ULZ777 decompressor and event-record parser
- Bounds-checking for malformed metadata in the GCDynamic, RegisteredTraceEventParser (TDH), Dynamic, and EventPipe V3 parsers
- Bounds-checking for malformed PE CodeView and Resource directory entries
- Path containment hardening for PDB extraction (zipped ETL + container PDBs), DiagSession resource extraction, R2R perf map writes, PdbScope module paths, and dynamic manifest writes
- Path-traversal and command-execution hardening for Source Server lookups
What's Changed
- Update CsWin32 Package Version by Brian Robbins (@brianrob) in #2425
- Fix incorrect field offsets when parsing ETW events with fixed-count array fields by @Copilot in #2427
- Retarget Native Profiler Builds To VS 2026 V145 Toolset by Brian Robbins (@brianrob) in #2428
- Stabilize XamlMessageBox UI-thread dispatch test by Brian Robbins (@brianrob) in #2430
Full Changelog: v3.2.3...v3.2.4
PerfView and TraceEvent 3.2.3
What's Changed
- Upgrade Microsoft.Windows.CsWin32 to 0.3.209 (GHSA-ghhp-997w-qr28) by @Copilot in #2409
- Enable Spectre mitigations and linker optimizations for EtwClrProfiler by Dan Moseley (@danmoseley) in #2410
- Fix 'unhanded' / 'occured' typos in UnhandledExceptionDialog body text by Sai Asish Y (@SAY-5) in #2413
- Fix GCStats failures on dotnet trace gc-verbose collections (#2414) by Jiri Cincura ↹ (@cincuranet) in #2415
- C entrypoint fixes by Zach Madsen (@zachcmadsen) in #2421
New Contributors
- Sai Asish Y (@SAY-5) made their first contribution in #2413
Full Changelog: v3.2.2...v3.2.3
PerfView and TraceEvent 3.2.2
What's Changed
- Fix PDB Symbol Resolution for Unmerged Windows Traces by Brian Robbins (@brianrob) in #2407
Full Changelog: v3.2.1...v3.2.2
PerfView and TraceEvent 3.2.1
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 Brian Robbins (@brianrob) in #2403
- Embed missing System.Text.Json transitive dependencies in PerfView by Brian Robbins (@brianrob) in #2404
Full Changelog: v3.2.0...v3.2.1
PerfView and TraceEvent 3.2.0
What's Changed
- Fix Debug.Assert failures in SpeedScope tests and DynamicTraceEventParser by Brian Robbins (@brianrob) in #2368
- Add TraceParserGen.Tests project and fix code generation bugs by @Copilot in #2308
- Update UsersGuide.htm by Aftab Ansari (@AftabAnsari10662) in #2370
- Strip .il and .ni suffixes from TraceModuleFile.Name by Lee Culver (@leculver) in #2364
- Handle provider names that start with a numeric digit. by Brian Robbins (@brianrob) in #2369
- Dispose WebView2 controls before Environment.Exit to prevent finalizer crash by Brian Robbins (@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 Brian Robbins (@brianrob) in #2376
- Add missing authority parameter to log by Juan Hoyos (@hoyosjs) in #2379
- Replace individual code owners with microsoft/perfview-reviewers group by Brian Robbins (@brianrob) in #2381
- Fix Dynamic Symbol Resolution for Mappings Shared Across Multiple Processes in Universal Traces by Brian Robbins (@brianrob) in #2380
- Implement Symbol Demanglers for Linux Binaries by Brian Robbins (@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 Brian Robbins (@brianrob) in #2384
- Update BDN to latest version. by Jiri Cincura ↹ (@cincuranet) in #2389
- Fixed overflow when working with large dumps by Remi Lemarchand (@remilema) in #2399
- Fix XamlMessageBox STA Threading Crash from Background Threads by Brian Robbins (@brianrob) in #2400
- Add ELF Symbol Resolution for Linux .nettrace Traces by Brian Robbins (@brianrob) in #2397
- Add Missing WCF Event Templates by Brian Robbins (@brianrob) in #2390
New Contributors
- Aftab Ansari (@AftabAnsari10662) made their first contribution in #2370
- Remi Lemarchand (@remilema) made their first contribution in #2399
Full Changelog: v3.1.30...v3.2.0
PerfView and TraceEvent 3.1.30
What's Changed
- doc: fix typos by Benney Au (@chinwobble) in #2359
- Fix SourceLink parsing to support both wildcard and exact path mappings by ivberg in #2355
- add horizontal scrolling to eventviewer by Logan George (@logangeorge01) in #2361
- Add SHA-384 and SHA-512 hash algorithm support for PDB checksums by @Copilot in #2366
New Contributors
- Benney Au (@chinwobble) made their first contribution in #2359
- Logan George (@logangeorge01) made their first contribution in #2361
Full Changelog: v3.1.29...v3.1.30
PerfView and TraceEvent 3.1.29
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 Brian Robbins (@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