如何从调试适配器协议实现(vscode 调试器扩展)记录?



简介:嗨,伙计们,我想问一些关于扩展开发的问题。我想创建一个远程lua调试器扩展(对于linux用户,还没有找到任何有效的lua调试器(。当我触摸启动按钮时,调试服务器应该启动以侦听(例如 0.0.0.0:8723(以等待调试器连接。另一方面,sould 通过 DAP(调试适配器协议(与 vscode 进行通信。
问题:我开始实现我自己的调试器扩展...但我是这个主题的新手,也是 Node .js。我的问题是:如何记录(或调试(我的 LoggingDebugSession(实现 DAP 的位置(?

我查看了 MockDebug 扩展示例项目。并试图重写...

尝试登录控制台,我的文件luaDebugSession.ts

export class LuaDebugSession extends LoggingDebugSession {
public constructor() {
super("remote-lua-debug-log.txt"); 
this.sendEvent(new OutputEvent("Try to log"));
console.log("Try log into console")
}
protected initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void {
this.sendEvent(new OutputEvent("Try to log 2"));
console.log("Try log into console 2")
// do something
this.sendEvent(new InitializedEvent());
}
// next code...
}

控制台中应为记录的输出。

这取决于您启动调试适配器的方式。如果您在自己的代码中运行它,console.log会将信息记录到激活的终端控制台。

但如果它是由 vscode 启动的,它将是一个独立的节点进程。它无法访问您现在使用的控制台。因此,您可以将信息写入日志文件或其他方法来记录它。

希望它能帮到你一点。

最新更新