VS Code .NET Core项目显示详细的调试控制台消息

Los*_*ost 4 c# .net-core visual-studio-code

我是VS Code的新手。但是,我在一个项目中注意到的一件事确实困扰着我。每当我使用内置调试器在VS Code中运行该项目时,它就会向我显示一条消息,如下所示:

Loaded /usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.0.0/System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enable

它显示了我引用的每个DLL的消息。这会在我的调试控制台中导致大量不必要的日志。我有两个问题:

  • 为什么显示此信息?
  • 有可能摆脱它吗?

ps2*_*oat 7

适用于dotnet core 2.2,在其他任何地方未经验证

我只是找到了一种使用logging选项消除大部分噪音的方法。不幸的是,我仍然看到一些程序输出,例如线程信息,因为我们当前有日志记录到控制台。我尚未完全按照自己喜欢的方式进行设置,但目前效果更好。

在中./.vscode/launch.json,将logging选项添加到您的配置中:

"configurations": [
        {
            "name": "Your config name",
            "type": "coreclr",
            "request": "launch",
            "logging": {
                "engineLogging": false,
                "moduleLoad": false,
                "exceptions": false,
                "browserStdOut": false
            },
// ... the rest of your existing config. surrounding code shown for placement purposes.
Run Code Online (Sandbox Code Playgroud)

您可能仍然希望将异常输出到控制台,但是到目前为止,我发现甚至记录了已处理的异常。我想忽略这些,所以我设置exceptionsfalse这里。


hce*_*hce 1

对于 Visual Studio 代码:

使用omnisharp-vscode 进行.net core 开发 ,这使您可以
使用json 文件自定义调试器启动
例如,您可以使用以下选项:

    "justMyCode":false*
    "symbolOptions": {
    "searchPaths": [
        "~/src/MyOtherProject/bin/debug",
        "https://my-companies-symbols-server"
    ],
    "searchMicrosoftSymbolServer": true,
    "cachePath": "/symcache",
    "moduleFilter": {
        "mode": "loadAllButExcluded",
        "excludedModules": [ "DoNotLookForThisOne*.dll" ]
       }
    }
Run Code Online (Sandbox Code Playgroud)

对于视觉工作室:

当您加载符号文件(pdb)时,您可以摆脱它。调试时,可以打开“模块”窗口(“调试”->“窗口”->“模块”),右键单击未加载符号的模块,然后选择“加载符号...”

如果您想禁用“仅我的代码”,请打开“工具”->“选项”->“调试”->“常规”,然后清除“启用仅我的代码(仅限托管)”复选框