From 8e3896b44de039ca716c70c8ed57da576be44749 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Thu, 25 Jul 2024 22:58:59 -0700 Subject: [PATCH] Fix issue 98506 - Excessive exceptions generated in StackTraceSymbols (#105530) * Fix issue 98506 - Excessive exceptions generated in StackTraceSymbols * Code review feedback --- .../src/System/Diagnostics/StackTraceSymbols.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libraries/System.Diagnostics.StackTrace/src/System/Diagnostics/StackTraceSymbols.cs b/src/libraries/System.Diagnostics.StackTrace/src/System/Diagnostics/StackTraceSymbols.cs index 54ea3b7786a66..fa2ee8018ba38 100644 --- a/src/libraries/System.Diagnostics.StackTrace/src/System/Diagnostics/StackTraceSymbols.cs +++ b/src/libraries/System.Diagnostics.StackTrace/src/System/Diagnostics/StackTraceSymbols.cs @@ -58,12 +58,11 @@ internal void GetSourceLineInfo(Assembly assembly, string assemblyPath, IntPtr l sourceLine = 0; sourceColumn = 0; - MetadataReader? reader = TryGetReader(assembly, assemblyPath, loadedPeAddress, loadedPeSize, isFileLayout, inMemoryPdbAddress, inMemoryPdbSize); - if (reader != null) + Handle handle = MetadataTokens.Handle(methodToken); + if (!handle.IsNil && handle.Kind == HandleKind.MethodDefinition) { - Handle handle = MetadataTokens.Handle(methodToken); - - if (handle.Kind == HandleKind.MethodDefinition) + MetadataReader? reader = TryGetReader(assembly, assemblyPath, loadedPeAddress, loadedPeSize, isFileLayout, inMemoryPdbAddress, inMemoryPdbSize); + if (reader != null) { MethodDebugInformationHandle methodDebugHandle = ((MethodDefinitionHandle)handle).ToDebugInformationHandle(); MethodDebugInformation methodInfo = reader.GetMethodDebugInformation(methodDebugHandle);