microsoft / perfview

PerfView is a CPU and memory performance-analysis tool
http://channel9.msdn.com/Series/PerfView-Tutorial
MIT License
4.21k stars 712 forks source link

DivideByZero exception while opening GC Heap Net Mem Stacks #1037

Open jasonmalinowski opened 5 years ago

jasonmalinowski commented 5 years ago

While trying to open the GC Heap Net Mem Stacks view for a trace, it fails to open and I get a "attempted to divide by zero" in the logs:

Started: Opening GC Heap Net Mem Stacks
Completed: Opening GC Heap Net Mem Stacks   (Elapsed Time: 1.016 sec)
Exception Occurred: System.DivideByZeroException: Attempted to divide by zero.
   at PerfView.ETLPerfViewData.<>c__DisplayClass5_0.<OpenStackSourceImpl>b__8(UInt64 objAddress, GCHeapSimulatorObject objInfo) in E:\A\_work\739\s\src\PerfView\PerfViewData.cs:line 4284
   at PerfView.GCHeapSimulator.OnObjectAllocated(TraceEvent data, UInt64 objectID, UInt64 classID, Int64 size, Int64 representativeSize) in E:\A\_work\739\s\src\PerfView\memory\GCHeapSimulator.cs:line 383
   at PerfView.GCHeapSimulator.<.ctor>b__0_5(ObjectAllocatedArgs data) in E:\A\_work\739\s\src\PerfView\memory\GCHeapSimulator.cs:line 174
   at Microsoft.Diagnostics.Tracing.Parsers.ETWClrProfiler.ObjectAllocatedArgs.Dispatch() in E:\A\_work\739\s\src\PerfView\memory\ETWClrProfilerTraceEventParser.cs:line 897
   at Microsoft.Diagnostics.Tracing.TraceEventDispatcher.DoDispatch(TraceEvent anEvent)
   at Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Dispatch(TraceEvent anEvent)
   at Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.Process()
   at PerfView.ETLPerfViewData.OpenStackSourceImpl(String streamName, TextWriter log, Double startRelativeMSec, Double endRelativeMSec, Predicate`1 predicate) in E:\A\_work\739\s\src\PerfView\PerfViewData.cs:line 4310
   at PerfView.PerfViewStackSource.OpenStackSource(String streamName, TextWriter log, Double startRelativeMSec, Double endRelativeMSec, Predicate`1 predicate) in E:\A\_work\739\s\src\PerfView\PerfViewData.cs:line 3843
   at PerfView.PerfViewStackSource.<>c__DisplayClass23_0.<Open>b__0() in E:\A\_work\739\s\src\PerfView\PerfViewData.cs:line 3867
   at PerfView.StatusBar.<>c__DisplayClass22_0.<StartWork>b__0() in E:\A\_work\739\s\src\PerfView\GuiUtilities\StatusBar\StatusBar.xaml.cs:line 254
An exceptional condition occurred, see log for details.

Help > About shows:

PerfView Version 2.0.47 
BuildDate: Tue, 29 Oct 2019 11:18:55 GMT
brianrob commented 5 years ago

@jasonmalinowski, can you please share the trace that you were opening when you saw this? It's OK if you need to send me the info via e-mail instead of posting it here.

jasonmalinowski commented 5 years ago

@brianrob Emailed internally.