Здравствуйте, RushDevion, Вы писали:
RD>В .net есть debugging API.
RD>Но по msdn докам с ним тяжело разобраться.
RD>Вот посмотри серию статей: https://lowleveldesign.wordpress.com/2010/10/11/writing-a-net-debugger-part-1-starting-the-debugging-session
Интересно, но 2010 год, и какой-то жуткий COM Interop на винде
Подумал тут что в VS Code отладка под линуксом/маком работает, может быть что-то полезное.
https://github.com/dotnet/vscode-csharp
Поспрашивал чат гопоты он на удивление довольно много знает.
Говорит что vscode использует
vsdbg, это такой специальный готовый отладчик
Оно взаимодействует с ним через протокол DAP
https://microsoft.github.io/debug-adapter-protocol
Взаимодействие путем посылки и приема JSON через консольный пайп.
| Говорит вот так можно запустить и установить точку останова |
| // Initialize Debug Session
{
"command": "initialize",
"arguments": {
"clientID": "your-editor",
"clientName": "Your Editor",
"adapterID": "coreclr",
"pathFormat": "path",
"linesStartAt1": true,
"columnsStartAt1": true,
"supportsVariableType": true,
"supportsVariablePaging": false,
"supportsRunInTerminalRequest": true,
"locale": "en-us"
},
"type": "request",
"seq": 1
}
// Attach or Launch the Script
{
"command": "launch",
"arguments": {
"program": "path/to/script.dll",
"stopAtEntry": false,
"cwd": "path/to/script",
"console": "internalConsole",
// Other necessary arguments
},
"type": "request",
"seq": 2
}
// Set Breakpoints
{
"command": "setBreakpoints",
"arguments": {
"source": {
"path": "path/to/script.cs"
},
"breakpoints": [
{
"line": 10
}
// More breakpoints
],
"sourceModified": false
},
"type": "request",
"seq": 3
}
|
| |