【问题标题】:Visual Studio Code .NET Core project shows verbose debug console messagesVisual Studio Code .NET Core 项目显示详细的调试控制台消息
【发布时间】:2018-10-17 20:55:30
【问题描述】:

我是 Visual Studio Code 的新手。然而,我在我拥有的一个项目中注意到的一件事真的让我很烦恼。每当我使用其内置调试器在 Visual Studio Code 中运行该项目时,它都会向我显示一条消息,如下所示:

已加载 /usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.0.0/System.Private.CoreLib.dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用

它显示了我引用的每个 DLL 文件的消息。这会导致我的调试控制台中出现大量无根据的日志。

  • 为什么会显示这些信息?
  • 是否有可能摆脱它?

【问题讨论】:

    标签: c# visual-studio-code .net-core


    【解决方案1】:

    适用于 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.
    

    您可能仍然希望将异常输出到控制台,但到目前为止,我发现即使处理过的异常也会被记录下来。我想忽略这些,所以我在这里将exceptions 设置为false

    【讨论】:

    • 谢谢 - 不知道在哪里设置这些。也就是说,从github.com/OmniSharp/omnisharp-vscode/blob/master/… 我注意到另一个设置 programOutput 也可能有用,除了这里列出的四个。
    • @Wellspring 是的,但我需要programOutput。如果您登录到控制台,或者您允许 dotnet 登录到控制台,如果该属性被禁用,调试控制台将不再显示日志。至少,有一个内部终端。如果您使用外部终端启动应用程序,您可能会在该终端中获取日志并仅使用调试控制台进行调试。
    • 明白了——我也启用了它!为了完整起见,我只是记下了它。
    • @ps2goat VS2019 怎么样?我只是找不到配置文件或任何阻止记录的文件
    【解决方案2】:

    对于 Visual Studio 代码:

    使用omnisharp-vscode for .net core development 这使您可以自定义
    debugger launch with a json file
    例如,您可以使用以下选项:

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

    对于 Visual Studio:

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

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

    【讨论】:

    • 适用于 Mac 吗?我正在使用 mac,但没有看到任何工具菜单 :((
    • 对不起。我以为您使用的是视觉工作室。我更新了我对 Visual Studio 代码的答案。
    • 感谢您为Just My code 错误工作。我也收到了很多 Cannot find or open the PDB file. 的消息你知道打开/关闭哪些选项看不到这些消息吗?
    • -1 除非您想调试系统、框架和其他非用户代码,否则不要遵循此答案。建议禁用优化功能以摆脱简单的日志消息是不专业的。
    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    相关资源
    最近更新 更多