1 Star 0 Fork 14

黑熊怪/native-debug

forked from openKylin/native-debug 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
package.json 31.40 KB
一键复制 编辑 原始数据 按行查看 历史
chenhaoyang2019 提交于 2022-09-09 17:22 . 添加反向调试的界面按钮
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068
{
"name": "debug",
"displayName": "Native Debug",
"description": "GDB, LLDB & Mago-MI Debugger support for VSCode",
"keywords": [
"gdb",
"lldb",
"mago-mi",
"native",
"debug"
],
"license": "public domain",
"version": "0.26.0",
"publisher": "webfreak",
"icon": "images/icon.png",
"engines": {
"vscode": "^1.55.0"
},
"main": "./out/src/frontend/extension",
"activationEvents": [
"onDebug",
"onCommand:code-debug.examineMemoryLocation",
"onCommand:code-debug.getFileNameNoExt",
"onCommand:code-debug.getFileBasenameNoExt",
"onCommand:code-debug.startRecord",
"onCommand:code-debug.stopRecord"
],
"categories": [
"Debuggers"
],
"repository": {
"type": "git",
"url": "https://github.com/WebFreak001/code-debug.git"
},
"capabilities": {
"untrustedWorkspaces": {
"supported": true
}
},
"contributes": {
"commands": [
{
"command": "code-debug.examineMemoryLocation",
"title": "Code-Debug: Examine memory location"
},
{
"command": "code-debug.startRecord",
"title": "Code-Debug: Start reverse debugging",
"icon":"$(debug-start)"
},
{
"command": "code-debug.stopRecord",
"title": "Code-Debug: Stop reverse debugging",
"icon":"$(debug-stop)"
}
],
"menus": {
"editor/title": [
{
"command": "code-debug.startRecord",
"when": "inDebugMode && debugState == stopped && debugType == 'gdb' && code-debug.enableStartRecord",
"group": "navigation"
},
{
"command": "code-debug.stopRecord",
"when": "inDebugMode && debugState == stopped && debugType == 'gdb' && !code-debug.enableStartRecord",
"group": "navigation"
}
]
},
"breakpoints": [
{"language": "c"},
{"language": "cpp"},
{"language": "d"},
{"language": "objective-c"},
{"language": "fortran"},
{"language": "fortran-modern"},
{"language": "fortran90"},
{"language": "fortran_free-form"},
{"language": "fortran_fixed-form"},
{"language": "rust"},
{"language": "pascal"},
{"language": "objectpascal"},
{"language": "ada"},
{"language": "nim"},
{"language": "arm"},
{"language": "asm"},
{"language": "vala"},
{"language": "crystal"},
{"language": "kotlin"},
{"language": "zig"}
],
"debuggers": [
{
"type": "gdb",
"program": "./out/src/gdb.js",
"runtime": "node",
"label": "GDB",
"languages": [
"c",
"cpp",
"d",
"objective-c",
"fortran",
"fortran-modern",
"fortran90",
"fortran_free-form",
"fortran_fixed-form",
"rust",
"pascal",
"objectpascal",
"ada",
"nim",
"arm",
"asm",
"vala",
"crystal",
"kotlin",
"zig"
],
"variables": {
"FileBasenameNoExt": "code-debug.getFileBasenameNoExt",
"FileNameNoExt": "code-debug.getFileNameNoExt"
},
"configurationAttributes": {
"launch": {
"required": [
"target",
"cwd"
],
"properties": {
"target": {
"type": "string",
"description": "Path of executable"
},
"arguments": {
"type": "string",
"description": "Arguments to append after the executable. You can also use pipes."
},
"terminal": {
"type": "string",
"description": "Leave this field undefined to keep program output in the vscode console at the bottom. If this is set to empty string the program will spawn in a new console using x-terminal-emulator on linux, otherwise with the specified terminal. On windows setting this to an empty string spawns the program in a console, but no other console is supported."
},
"cwd": {
"type": "string",
"description": "project path"
},
"gdbpath": {
"type": "string",
"description": "Path to the gdb executable or the command if in PATH",
"default": "gdb"
},
"env": {
"type": "object",
"description": "Environment overriding the gdb (and in turn also the process) environment",
"default": null
},
"debugger_args": {
"type": "array",
"description": "Additional arguments to pass to GDB",
"default": []
},
"pathSubstitutions": {
"type": "object",
"description": "Help GDB find your source using path substitutions (GDB `substitute-path)` variable",
"default": {
"<fromPath>": "<toPath>"
}
},
"valuesFormatting": {
"type": "string",
"description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any",
"default": "parseText",
"enum": [
"disabled",
"parseText",
"prettyPrinters"
]
},
"printCalls": {
"type": "boolean",
"description": "Prints all GDB calls to the console",
"default": false
},
"showDevDebugOutput": {
"type": "boolean",
"description": "Prints all GDB responses to the console",
"default": false
},
"autorun": {
"type": "array",
"description": "GDB commands to run when starting to debug",
"default": []
},
"stopAtEntry": {
"type": ["boolean", "string"],
"description": "Whether debugger should stop at application entry point",
"default": false
},
"ssh": {
"required": [
"host",
"user",
"cwd"
],
"type": "object",
"description": "If this is set then the extension will connect to an ssh host and run GDB there",
"properties": {
"host": {
"type": "string",
"description": "Remote host name/ip to connect to"
},
"port": {
"type": ["number", "string"],
"description": "Remote port number",
"default": 22
},
"user": {
"type": "string",
"description": "Username to connect as"
},
"password": {
"type": "string",
"description": "Plain text password (unsafe; if possible use keyfile instead)"
},
"keyfile": {
"type": "string",
"description": "Absolute path to private key"
},
"useAgent": {
"type": "boolean",
"description": "Auto-detect the running SSH agent (via SSH_AUTH_SOCK environment variable) and use it to perform authentication",
"default": false
},
"sourceFileMap": {
"type": "object",
"description": "Mapping of source paths (from GDB on ssh remote) to local (IDE) paths.",
"default": {
"<sourcePath>": "<localPath>"
}
},
"cwd": {
"type": "string",
"description": "Working directory for the debugger.\nIf `ssh.sourceFileMap` is not set, then this is also the project path on the remote for mapping with `cwd`."
},
"forwardX11": {
"type": "boolean",
"description": "If true, the server will redirect x11 to the local host",
"default": true
},
"x11port": {
"type": ["number", "string"],
"description": "Port to redirect X11 data to (by default port = display + 6000)",
"default": 6000
},
"x11host": {
"type": "string",
"description": "Hostname/ip to redirect X11 data to",
"default": "localhost"
},
"remotex11screen": {
"type": "number",
"description": "Screen to start the application on the remote side",
"default": 0
},
"bootstrap": {
"type": "string",
"description": "Content will be executed on the SSH host before the debugger call."
}
}
}
}
},
"attach": {
"required": [
"target",
"cwd"
],
"properties": {
"target": {
"type": "string",
"description": "PID of running program or program name or connection arguments (eg :2345) if remote is true"
},
"remote": {
"type": "boolean",
"description": "If true this will connect to a gdbserver instead of attaching to a PID",
"default": false
},
"valuesFormatting": {
"type": "string",
"description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any",
"default": "parseText",
"enum": [
"disabled",
"parseText",
"prettyPrinters"
]
},
"printCalls": {
"type": "boolean",
"description": "Prints all GDB calls to the console",
"default": false
},
"showDevDebugOutput": {
"type": "boolean",
"description": "Prints all GDB responses to the console",
"default": false
},
"executable": {
"type": "string",
"description": "Path of executable for debugging symbols"
},
"gdbpath": {
"type": "string",
"description": "Path to the gdb executable or the command if in PATH",
"default": "gdb"
},
"env": {
"type": "object",
"description": "Environment overriding the gdb (and in turn also the process) environment",
"default": null
},
"debugger_args": {
"type": "array",
"description": "Additional arguments to pass to GDB",
"default": []
},
"pathSubstitutions": {
"type": "object",
"description": "Help GDB find your source using path substitutions (GDB `substitute-path)` variable",
"default": {
"<fromPath>": "<toPath>"
}
},
"cwd": {
"type": "string",
"description": "project path",
"default": "${workspaceRoot}"
},
"autorun": {
"type": "array",
"description": "GDB commands to run when starting to debug",
"default": []
},
"stopAtConnect": {
"type": "boolean",
"description": "Whether debugger should stop after connecting to target",
"default": false
},
"stopAtEntry": {
"type": ["boolean", "string"],
"description": "Whether debugger should stop at application entry point",
"default": false
},
"ssh": {
"required": [
"host",
"cwd",
"user"
],
"type": "object",
"description": "If this is set then the extension will connect to an ssh host and run GDB there",
"properties": {
"host": {
"type": "string",
"description": "Remote host name/ip to connect to"
},
"port": {
"type": ["number", "string"],
"description": "Remote port number",
"default": 22
},
"user": {
"type": "string",
"description": "Username to connect as"
},
"password": {
"type": "string",
"description": "Plain text password (unsafe; if possible use keyfile instead)"
},
"keyfile": {
"type": "string",
"description": "Absolute path to private key"
},
"useAgent": {
"type": "boolean",
"description": "Auto-detect the running SSH agent (via SSH_AUTH_SOCK environment variable) and use it to perform authentication",
"default": false
},
"sourceFileMap": {
"type": "object",
"description": "Mapping of source paths (from GDB on ssh remote) to local (IDE) paths.",
"default": {
"<sourcePath>": "<localPath>"
}
},
"cwd": {
"type": "string",
"description": "Working directory for the debugger.\nIf `ssh.sourceFileMap` is not set, then this is also the project path on the remote for mapping with `cwd`."
},
"forwardX11": {
"type": "boolean",
"description": "If true, the server will redirect x11 to the local host",
"default": true
},
"x11port": {
"type": ["number", "string"],
"description": "Port to redirect X11 data to (by default port = display + 6000)",
"default": 6000
},
"x11host": {
"type": "string",
"description": "Hostname/ip to redirect X11 data to",
"default": "localhost"
},
"remotex11screen": {
"type": "number",
"description": "Screen to start the application on the remote side",
"default": 0
},
"bootstrap": {
"type": "string",
"description": "Content will be executed on the SSH host before the debugger call."
}
}
}
}
}
},
"initialConfigurations": [
{
"name": "Debug",
"type": "gdb",
"request": "launch",
"target": "./bin/executable",
"cwd": "${workspaceRoot}",
"valuesFormatting": "parseText"
}
],
"configurationSnippets": [
{
"label": "GDB: Launch Program",
"description": "Starts the program using gdb",
"body": {
"type": "gdb",
"request": "launch",
"name": "${2:Launch Program}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
},
{
"label": "GDB: Attach to PID",
"description": "Attaches to a running program pid using gdb",
"body": {
"type": "gdb",
"request": "attach",
"name": "${2:Attach to PID}",
"target": "${1:[PID]}",
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
},
{
"label": "GDB: Connect to gdbserver",
"description": "Connects to a gdbserver for debugging",
"body": {
"type": "gdb",
"request": "attach",
"name": "${3:Attach to gdbserver}",
"executable": "${1:./bin/executable}",
"target": ":${2:2345}",
"remote": true,
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
},
{
"label": "GDB: Launch over SSH",
"description": "Remotely starts the program using gdb",
"body": {
"type": "gdb",
"request": "launch",
"name": "${6:Launch Program (SSH)}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"ssh": {
"host": "${2:127.0.0.1}",
"cwd": "${3:/tmp/working}",
"keyfile": "${4:/home/my_user/.ssh/id_rsa}",
"user": "${5:remote_user}",
"sourceFileMap": {
"${6:/home/remote_user/project/}": "^\"\\${workspaceRoot}\""
}
},
"valuesFormatting": "parseText"
}
},
{
"label": "GDB: Launch GUI over SSH with X11 forwarding",
"description": "Remotely starts the program using gdb with X11 forwarding",
"body": {
"type": "gdb",
"request": "launch",
"name": "${6:Launch Program (SSH + X11)}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"ssh": {
"host": "${2:127.0.0.1}",
"cwd": "${3:/home/remote_user/project/}",
"keyfile": "${4:/home/my_user/.ssh/id_rsa}",
"user": "${5:remote_user}",
"forwardX11": true,
"x11host": "localhost",
"x11port": 6000
},
"valuesFormatting": "parseText"
}
},
{
"label": "GDB: Debug external embedded device",
"description": "Debugs an embedded microcontroller supported by GDB by attaching over extended-remote",
"body": {
"type": "gdb",
"request": "attach",
"name": "${6:Debug Microcontroller}",
"target": "extended-remote ${2:/dev/cu.usbmodem00000000}",
"executable": "${1:./bin/executable.elf}",
"cwd": "^\"\\${workspaceRoot}\"",
"autorun": [
"monitor tpwr enable",
"monitor swdp_scan",
"attach 1",
"load ${1:./bin/executable.elf}"
]
},
"valuesFormatting": "parseText"
}
]
},
{
"type": "lldb-mi",
"program": "./out/src/lldb.js",
"runtime": "node",
"label": "LLDB",
"languages": [
"c",
"cpp",
"d",
"objective-c",
"fortran",
"fortran-modern",
"fortran90",
"fortran_free-form",
"fortran_fixed-form",
"rust",
"pascal",
"objectpascal",
"ada",
"nim",
"arm",
"asm",
"vala",
"crystal",
"kotlin",
"zig"
],
"variables": {
"FileBasenameNoExt": "code-debug.getFileBasenameNoExt",
"FileNameNoExt": "code-debug.getFileNameNoExt"
},
"configurationAttributes": {
"launch": {
"required": [
"target"
],
"properties": {
"target": {
"type": "string",
"description": "Path of executable"
},
"arguments": {
"type": "string",
"description": "Arguments to append after the executable"
},
"cwd": {
"type": "string",
"description": "project path"
},
"lldbmipath": {
"type": "string",
"description": "Path to the lldb-mi executable or the command if in PATH",
"default": "lldb-mi"
},
"env": {
"type": "object",
"description": "Environment overriding the lldb-mi (and in turn also the process) environment",
"default": null
},
"debugger_args": {
"type": "array",
"description": "Additional arguments to pass to LLDB",
"default": []
},
"pathSubstitutions": {
"type": "object",
"description": "Help LLDB find your source using path substitutions (LLDB `target.source-map)` variable",
"default": {
"<fromPath>": "<toPath>"
}
},
"valuesFormatting": {
"type": "string",
"description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any",
"default": "parseText",
"enum": [
"disabled",
"parseText",
"prettyPrinters"
]
},
"printCalls": {
"type": "boolean",
"description": "Prints all lldb calls to the console",
"default": false
},
"showDevDebugOutput": {
"type": "boolean",
"description": "Prints all lldb responses to the console",
"default": false
},
"autorun": {
"type": "array",
"description": "lldb commands to run when starting to debug",
"default": []
},
"stopAtEntry": {
"type": ["boolean", "string"],
"description": "Whether debugger should stop at application entry point",
"default": false
},
"ssh": {
"required": [
"host",
"cwd",
"user"
],
"type": "object",
"description": "If this is set then the extension will connect to an ssh host and run lldb there",
"properties": {
"host": {
"type": "string",
"description": "Remote host name/ip to connect to"
},
"port": {
"type": ["number", "string"],
"description": "Remote port number",
"default": 22
},
"user": {
"type": "string",
"description": "Username to connect as"
},
"password": {
"type": "string",
"description": "Plain text password (unsafe; if possible use keyfile instead)"
},
"keyfile": {
"type": "string",
"description": "Absolute path to private key"
},
"useAgent": {
"type": "boolean",
"description": "Auto-detect the running SSH agent (via SSH_AUTH_SOCK environment variable) and use it to perform authentication",
"default": false
},
"sourceFileMap": {
"type": "object",
"description": "Mapping of source paths (from GDB on ssh remote) to local (IDE) paths.",
"default": {
"<sourcePath>": "<localPath>"
}
},
"cwd": {
"type": "string",
"description": "Working directory for the debugger.\nIf `ssh.sourceFileMap` is not set, then this is also the project path on the remote for mapping with `cwd`."
},
"forwardX11": {
"type": "boolean",
"description": "If true, the server will redirect x11 to the local host",
"default": true
},
"x11host": {
"type": "string",
"description": "Hostname/ip to redirect X11 data to",
"default": "localhost"
},
"x11port": {
"type": ["number", "string"],
"description": "Port to redirect X11 data to (by default port = display + 6000)",
"default": 6000
},
"remotex11screen": {
"type": "number",
"description": "Screen to start the application on the remote side",
"default": 0
},
"bootstrap": {
"type": "string",
"description": "Content will be executed on the SSH host before the debugger call."
}
}
}
}
},
"attach": {
"required": [
"target"
],
"properties": {
"target": {
"type": "string",
"description": "PID of running program or program name"
},
"valuesFormatting": {
"type": "string",
"description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any",
"default": "parseText",
"enum": [
"disabled",
"parseText",
"prettyPrinters"
]
},
"printCalls": {
"type": "boolean",
"description": "Prints all LLDB calls to the console",
"default": false
},
"showDevDebugOutput": {
"type": "boolean",
"description": "Prints all LLDB responses to the console",
"default": false
},
"executable": {
"type": "string",
"description": "Path of executable for debugging symbols"
},
"lldbmipath": {
"type": "string",
"description": "Path to the lldb-mi executable or the command if in PATH",
"default": "lldb-mi"
},
"env": {
"type": "object",
"description": "Environment overriding the lldb-mi (and in turn also the process) environment",
"default": null
},
"debugger_args": {
"type": "array",
"description": "Additional arguments to pass to LLDB",
"default": []
},
"pathSubstitutions": {
"type": "object",
"description": "Help LLDB find your source using path substitutions (LLDB `target.source-map)` variable",
"default": {
"<fromPath>": "<toPath>"
}
},
"cwd": {
"type": "string",
"description": "project path",
"default": "${workspaceRoot}"
},
"autorun": {
"type": "array",
"description": "lldb commands to run when starting to debug",
"default": []
},
"stopAtConnect": {
"type": "boolean",
"description": "Whether debugger should stop after connecting to target",
"default": false
},
"stopAtEntry": {
"type": ["boolean", "string"],
"description": "Whether debugger should stop at application entry point",
"default": false
}
}
}
},
"initialConfigurations": [
{
"name": "Debug",
"type": "lldb-mi",
"request": "launch",
"target": "./bin/executable",
"cwd": "${workspaceRoot}",
"valuesFormatting": "parseText"
}
],
"configurationSnippets": [
{
"label": "LLDB: Launch Program",
"description": "Starts the program using lldb-mi",
"body": {
"type": "lldb-mi",
"request": "launch",
"name": "${2:Launch Program}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
},
{
"label": "LLDB: Attach to PID",
"description": "Attaches to a running program pid using lldb-mi",
"body": {
"type": "lldb-mi",
"request": "attach",
"name": "${2:Attach to PID}",
"target": "${1:[PID]}",
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
},
{
"label": "LLDB: Launch over SSH",
"description": "Remotely starts the program using lldb-mi",
"body": {
"type": "lldb-mi",
"request": "launch",
"name": "${6:Launch Program (SSH)}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"ssh": {
"host": "${2:127.0.0.1}",
"cwd": "${3:/home/remote_user/project/}",
"keyfile": "${4:/home/my_user/.ssh/id_rsa}",
"user": "${5:remote_user}"
},
"valuesFormatting": "parseText"
}
},
{
"label": "LLDB: Launch GUI over SSH with X11 forwarding",
"description": "Remotely starts the program using lldb-mi with X11 forwarding",
"body": {
"type": "lldb-mi",
"request": "launch",
"name": "${6:Launch Program (SSH + X11)}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"ssh": {
"host": "${2:127.0.0.1}",
"cwd": "${3:/home/remote_user/project/}",
"keyfile": "${4:/home/my_user/.ssh/id_rsa}",
"user": "${5:remote_user}",
"forwardX11": true,
"x11host": "localhost",
"x11port": 6000
},
"valuesFormatting": "parseText"
}
}
]
},
{
"type": "mago-mi",
"program": "./out/src/mago.js",
"runtime": "node",
"label": "Mago-MI",
"variables": {
"FileBasenameNoExt": "code-debug.getFileBasenameNoExt",
"FileNameNoExt": "code-debug.getFileNameNoExt"
},
"configurationAttributes": {
"launch": {
"required": [
"target"
],
"properties": {
"target": {
"type": "string",
"description": "Path of executable"
},
"arguments": {
"type": "string",
"description": "Arguments to append after the executable"
},
"cwd": {
"type": "string",
"description": "project path"
},
"magomipath": {
"type": "string",
"description": "Path to the mago-mi executable or the command if in PATH",
"default": "mago-mi"
},
"env": {
"type": "object",
"description": "Environment overriding the mago-mi (and in turn also the process) environment",
"default": null
},
"debugger_args": {
"type": "array",
"description": "Additional arguments to pass to mago",
"default": []
},
"valuesFormatting": {
"type": "string",
"description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any",
"default": "parseText",
"enum": [
"disabled",
"parseText",
"prettyPrinters"
]
},
"printCalls": {
"type": "boolean",
"description": "Prints all mago calls to the console",
"default": false
},
"showDevDebugOutput": {
"type": "boolean",
"description": "Prints all mago responses to the console",
"default": false
},
"autorun": {
"type": "array",
"description": "mago commands to run when starting to debug",
"default": []
}
}
},
"attach": {
"required": [
"target"
],
"properties": {
"target": {
"type": "string",
"description": "PID of running program or program name"
},
"valuesFormatting": {
"type": "string",
"description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any",
"default": "parseText",
"enum": [
"disabled",
"parseText",
"prettyPrinters"
]
},
"printCalls": {
"type": "boolean",
"description": "Prints all mago calls to the console",
"default": false
},
"showDevDebugOutput": {
"type": "boolean",
"description": "Prints all mago responses to the console",
"default": false
},
"executable": {
"type": "string",
"description": "Path of executable for debugging symbols"
},
"magomipath": {
"type": "string",
"description": "Path to the mago-mi executable or the command if in PATH",
"default": "mago-mi"
},
"env": {
"type": "object",
"description": "Environment overriding the mago-mi (and in turn also the process) environment",
"default": null
},
"debugger_args": {
"type": "array",
"description": "Additional arguments to pass to mago",
"default": []
},
"cwd": {
"type": "string",
"description": "project path",
"default": "${workspaceRoot}"
},
"autorun": {
"type": "array",
"description": "mago commands to run when starting to debug",
"default": []
},
"stopAtConnect": {
"type": "boolean",
"description": "Whether debugger should stop after connecting to target",
"default": false
}
}
}
},
"initialConfigurations": [
{
"name": "Debug",
"type": "mago-mi",
"request": "launch",
"target": "./bin/executable",
"cwd": "${workspaceRoot}",
"valuesFormatting": "parseText"
}
],
"configurationSnippets": [
{
"label": "Mago: Launch Program",
"description": "Starts the program using mago-mi",
"body": {
"type": "mago-mi",
"request": "launch",
"name": "${2:Launch Program}",
"target": "${1:./bin/executable}",
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
},
{
"label": "Mago: Attach to PID",
"description": "Attaches to a running program pid using mago-mi",
"body": {
"type": "mago-mi",
"request": "attach",
"name": "${2:Attach to PID}",
"target": "${1:[PID]}",
"cwd": "^\"\\${workspaceRoot}\"",
"valuesFormatting": "parseText"
}
}
]
}
]
},
"scripts": {
"vscode:prepublish": "tsc -p ./",
"compile": "tsc -watch -p ./"
},
"dependencies": {
"ssh2": "^1.6.0",
"vscode-debugadapter": "^1.45.0",
"vscode-debugprotocol": "^1.45.0"
},
"devDependencies": {
"@types/mocha": "^5.2.6",
"@types/node": "^11.11.3",
"@types/vscode": "^1.55.0",
"mocha": "^9.1.3",
"tslint": "^5.20.1",
"typescript": "^3.9.3",
"vscode-test": "1.3.0"
},
"__metadata": {
"id": "2fd22b8e-b3b8-4e7f-9a28-a5e2d1bdd0d4",
"publisherDisplayName": "WebFreak",
"publisherId": "e054f80a-50f9-4d80-85c8-6ff87eef6c35"
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xhafei/native-debug.git
git@gitee.com:xhafei/native-debug.git
xhafei
native-debug
native-debug
master

搜索帮助