typescript - Hur man får VS Code debugdata som brytpunkter, steg, radkod
Jag arbetar på ett akademiskt programvaruvisualiseringsprojekt som syftar till att fånga debuggsessioner och visa dem grafiskt. För detta försöker jag skapa en Visual Studio Code-tillägg där jag kan få de data som utbyts med den aktuella språkdebuggern, såsom tillagda brytpunkter, steg in, steg över, start av debuggsession, debugga fil, kontextvariabler, radkoden som debuggas. Det vill säga, samma data som visas i VS Code-fönstren: VARIABLES, WATCH, CALL STACK, LOADED SCRIPTS och BREAKPOINTS.
Jag försökte skapa en extension som lägger till en ny Debugger Provider, med hjälp av Debug Adapter (DAP - Debug Adapter Protocol). Men detta avbryter den nuvarande providern och tillåter inte felsökning. https://code.visualstudio.com/api/extension-guides/debugger-extension
Jag försökte också använda VS Code API-händelser. Med dessa händelser lyckades jag kontrollera starten av sessionen och viss brytpunktdata, dock ofullständig. https://code.visualstudio.com/api/references/vscode-api#debug
Skulle någon veta hur man fångar denna felsökningsdata i VS Code-omfånget (VS Code Generic Debugger UI), det vill säga oavsett vilket språk som används? Finns det något öppet ärende för detta på VS Codes GitHub?
Svar #1
Lösningen för detta kallas en DebugAdapterTracker.
vscode.debug.registerDebugAdapterTrackerFactory('*', {
createDebugAdapterTracker(session: DebugSession) {
return {
onWillReceiveMessage: m => console.log(`> ${JSON.stringify(m, undefined, 2)}`),
onDidSendMessage: m => console.log(`< ${JSON.stringify(m, undefined, 2)}`)
};
}
});
https://code.visualstudio.com/updates/v1_30#_extension-authoring
Sök efter "Finalized Debug Adapter Tracker API". Det skapades ursprungligen för Live Share-debugging.
