Take a stack from the VS debugger and make it into linkified markdown.
Got an interesting stack in Visual Studio that you'd like to share? Prettify and linkify it into something like this:
Microsoft.Build.dll!Microsoft.Build.Shared.TypeLoader.LoadAssembly(assemblyLoadInfo) Line 162Microsoft.Build.dll!Microsoft.Build.Shared.TypeLoader.AssemblyInfoToLoadedTypes.ScanAssemblyForPublicTypes() Line 355Microsoft.Build.dll!Microsoft.Build.Shared.TypeLoader.AssemblyInfoToLoadedTypes.GetLoadedTypeByTypeName.AnonymousMethod__0(key) Line 326mscorlib.dll!System.Collections.Concurrent.ConcurrentDictionary<string, System.Type>.GetOrAdd(key, valueFactory) Line 1069Microsoft.Build.dll!Microsoft.Build.Shared.TypeLoader.AssemblyInfoToLoadedTypes.GetLoadedTypeByTypeName(typeName) Line 299Microsoft.Build.dll!Microsoft.Build.Shared.TypeLoader.GetLoadedType(cache, typeName, assembly) Line 226Microsoft.Build.dll!Microsoft.Build.Shared.TypeLoader.Load(typeName, assembly) Line 192Microsoft.Build.dll!Microsoft.Build.BackEnd.AssemblyTaskFactory.InitializeFactory(loadInfo, taskName, taskParameters, taskElementContents, taskFactoryIdentityParameters, taskHostFactoryExplicitlyRequested, targetLoggingContext, elementLocation, taskProjectFile) Line 278Microsoft.Build.dll!Microsoft.Build.Execution.TaskRegistry.RegisteredTaskRecord.GetTaskFactory(targetLoggingContext, elementLocation, taskProjectFile) Line 1307Microsoft.Build.dll!Microsoft.Build.Execution.TaskRegistry.RegisteredTaskRecord.CanTaskBeCreatedByFactory(taskName, taskProjectFile, taskIdentityParameters, targetLoggingContext, elementLocation) Line 1189Microsoft.Build.dll!Microsoft.Build.Execution.TaskRegistry.GetMatchingRegistration(taskName, taskRecords, taskProjectFile, taskIdentityParameters, targetLoggingContext, elementLocation) Line 689Microsoft.Build.dll!Microsoft.Build.Execution.TaskRegistry.GetTaskRegistrationRecord(taskName, taskProjectFile, taskIdentityParameters, exactMatchRequired, targetLoggingContext, elementLocation, retrievedFromCache) Line 538Microsoft.Build.dll!Microsoft.Build.Execution.TaskRegistry.GetRegisteredTask(taskName, taskProjectFile, taskIdentityParameters, exactMatchRequired, targetLoggingContext, elementLocation) Line 417Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskExecutionHost.FindTaskInRegistry(taskIdentityParameters) Line 868Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.FindTask(taskIdentityParameters) Line 249Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteBucket(taskHost, bucket, howToExecuteTask, lookupHash) Line 414Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(mode, lookup) Line 325Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(loggingContext, requestEntry, targetBuilderCallback, taskInstance, mode, inferLookup, executeLookup, cancellationToken) Line 179Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetEntry.ProcessBucket(taskBuilder, targetLoggingContext, mode, lookupForInference, lookupForExecution) Line 816Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetEntry.ExecuteTarget(taskBuilder, requestEntry, projectLoggingContext, cancellationToken) Line 499Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetBuilder.ProcessTargetStack(taskBuilder) Line 486
In the Visual Studio debugger, select the stack frames of interest, then "Copy with source paths".