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 54ea3b7786a66d..fa2ee8018ba389 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);