gpt4 book ai didi

visual-studio-code - 调试崩溃的语言服务器

转载 作者:行者123 更新时间:2023-12-04 14:01:12 24 4
gpt4 key购买 nike

如果我在这里的细节有点少,我深表歉意,但主要问题实际上是试图找到我的代码的问题。我正在更新我自己的基于语言服务器示例 ( https://code.visualstudio.com/docs/extensions/example-language-server ) 的旧扩展。我遇到了一个问题,当我使用 F5 运行我的代码的客户端部分并且调试窗口触发时,我得到:

CSSLint 语言客户端服务器在过去 3 分钟内崩溃了 5 次。服务器不会重新启动。

好的......所以......事情就是这样。我的扩展客户端代码中的问题 View 没有显示任何内容。该代码窗口的 DevTools 没有显示任何内容。

我的服务器代码的问题 View 没有显示任何内容。开发者工具,同上。

对于 Extension Developer Host 实例,DevTools 确实显示了这一点:

messageService.ts:126 CSSLint 语言客户端服务器在过去 3 分钟内崩溃了 5 次。服务器不会重启.e.doShow @ messageService.ts:126

但是我无法深入研究细节以找到错误。所以问题是 - 假设我的服务器代码出现故障,错误究竟在哪里可用?

最佳答案

这是我通常用来跟踪服务器崩溃的方法(我假设您的服务器是用 JavaScript/TypeScript 编写的)。

使用以下服务器选项:

    let serverModule = "path to your server"
let debugOptions = { execArgv: ["--nolazy", "--debug=6009"] };
let serverOptions = {
run: { module: serverModule, transport: TransportKind.ipc },
debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions}
};

这里的关键是使用 TransportKind.ipc。服务器中发生并打印到 stdio 的错误将显示在与您的服务器关联的输出 channel 中(输出 channel 的名称是传递给 LanguageClient 的名称)

如果要调试服务器启动/初始化序列,可以将 debugOptions 更改为:
let debugOptions = { execArgv: ["--nolazy", "--debug-brk=6009"] };

如果扩展在 Debug模式下启动(例如,例如使用 F5 从 VS Code 启动),则 LanguageClient 会自动以 Debug模式启动服务器。如果扩展正常启动(例如作为 VS Code 中的真实扩展),那么服务器也会正常启动。

为了使这一切正常工作,您需要一个最新版本的 LSP 节点 npm 模块,用于服务器可以客户端(例如 2.6.x)

关于visual-studio-code - 调试崩溃的语言服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41730866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com