Skip to content

Commit f2f2ed3

Browse files
authored
Add stack trace to resolve event handler for debug builds (#1527)
1 parent fc3d4a9 commit f2f2ed3

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT License.
33

44
using System;
5+
using System.Diagnostics;
56
using System.IO;
67
using System.Reflection;
78
using System.Threading.Tasks;
@@ -93,7 +94,11 @@ public static EditorServicesLoader Create(
9394

9495
AssemblyLoadContext.Default.Resolving += (AssemblyLoadContext defaultLoadContext, AssemblyName asmName) =>
9596
{
97+
#if DEBUG
98+
logger.Log(PsesLogLevel.Diagnostic, $"Assembly resolve event fired for {asmName}. Stacktrace:\n{new StackTrace()}");
99+
#else
96100
logger.Log(PsesLogLevel.Diagnostic, $"Assembly resolve event fired for {asmName}");
101+
#endif
97102

98103
// We only want the Editor Services DLL; the new ALC will lazily load its dependencies automatically
99104
if (!string.Equals(asmName.Name, "Microsoft.PowerShell.EditorServices", StringComparison.Ordinal))
@@ -124,7 +129,11 @@ public static EditorServicesLoader Create(
124129
// Unlike in .NET Core, we need to be look for all dependencies in .NET Framework, not just PSES.dll
125130
AppDomain.CurrentDomain.AssemblyResolve += (object sender, ResolveEventArgs args) =>
126131
{
132+
#if DEBUG
133+
logger.Log(PsesLogLevel.Diagnostic, $"Assembly resolve event fired for {args.Name}. Stacktrace:\n{new StackTrace()}");
134+
#else
127135
logger.Log(PsesLogLevel.Diagnostic, $"Assembly resolve event fired for {args.Name}");
136+
#endif
128137

129138
var asmName = new AssemblyName(args.Name);
130139
var dllName = $"{asmName.Name}.dll";

0 commit comments

Comments
 (0)