我有以下代码。如何使用调试器在 VS Code 中运行它。我安装并尝试了实时服务器,但可能做得不正确。
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button>Test</button>
<script src="index.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
索引.js
var button = document.querySelector('button');
var fn = () => console.log(this)
function fn() {
console.log(this);
}
button.addEventListener('click', fn)
Run Code Online (Sandbox Code Playgroud) 对我来说,VSCode 中新的内置 javascript 调试扩展不会命中节点 v8.* 的断点。断点保持未绑定状态。之前一切正常,我想使用旧的节点调试扩展。我见过有人建议只设置"debug.javascript.usePreview": "false",但 VSC 1.60.0 说这是一个未知的配置设置。
如何恢复到旧的节点/javascript 调试器?
我正在尝试使用不同的环境来调试 Nodejs 应用程序。我正在使用pm2, 和--watch标志来运行此应用程序,以便在更改/保存文件时我的应用程序会重新启动。相关脚本如下:
"start": "node --inspect -r tsconfig-paths/register -r ts-node/register ./src/server.ts",
"launch": "pm2 start pm2.config.js",
Run Code Online (Sandbox Code Playgroud)
我的 pm2.config.js 看起来像这样:
"start": "node --inspect -r tsconfig-paths/register -r ts-node/register ./src/server.ts",
"launch": "pm2 start pm2.config.js",
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在 chrome 节点检查器中进行调试。我还使用了 chrome 扩展NodeJS Inspector Manager,它是节点检查器的一个很好的包装器。它有一个漂亮的用户界面,您可以看到有自动附加和自动恢复的选项:
启用这些后,每当我在项目中保存文件时,pm2 都会重新启动应用程序。NiMs 自动分离并重新附加到正在运行的应用程序,并且我有一个交互式 chrome 检查器调试环境,可以通过应用程序重新启动来刷新。
我想在 vscode 调试器中重现这种效果。我可以手动启动一个调试会话,该会话附加到通过 pm2 运行的应用程序。在Debugging With PM2 And Vscode的帮助下,我能够指示 vscode 调试器附加到通过 pm2 运行的应用程序。但是,当我保存文件时,pm2 重新启动进程,vscode 调试器会分离,但不会重新附加。
NiMs 有一个vscode 扩展,但据我所知,它似乎没有在 vscode 中提供与 chrome 中相同的功能。
有没有办法设置 vscode 调试器附加到 pm2 进程,并在进程重新启动时自动重新启动(在同一调试器端口上)?
node.js node-inspector pm2 visual-studio-code vscode-debugger
我决定在 VS Code 中使用 dart 重写一些 js 内容。
当我在调试模式下启动 dart 控制台应用程序,并且某处存在错误时,会打开一个 error_patch.dart 文件,显示第 27 行。如何阻止该文件打开?
@patch
@pragma("vm:external-name", "Error_throwWithStackTrace")
external static Never _throw(Object error, StackTrace stackTrace);
}
Run Code Online (Sandbox Code Playgroud) 尝试使用 vscode 调试器来调试我的 go 代码。
vscode 使用以下 launch.json 配置文件运行同一目录中的所有 .go 文件:
{
"name": "Test",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${relativeFileDirname}",
}
Run Code Online (Sandbox Code Playgroud)
显然,我尝试更改
"program": "${relativeFileDirname}",->"program": "${file}",但它不起作用。
另外,有没有办法可以运行 ut 而不是整个文件(或者在本例中是整个目录)?
我有一个 python 脚本,它使用以下几行启动多个子进程:
for elm in elements:
t = multiprocessing.Process(target=sub_process,args=[elm])
threads.append(t)
t.start()
for t in threads:
t.join()
Run Code Online (Sandbox Code Playgroud)
有时,由于某种原因线程会停止并且脚本永远不会完成。我正在尝试使用 VSCode 调试器来查找问题并检查线程本身卡住的位置,但我在暂停这些子进程时遇到问题,因为当我单击调试器窗口中的暂停时:

它将暂停主线程和其他一些正常运行的线程,但不会暂停卡住的子进程。即使当我尝试使用“调用堆栈”窗口手动一一暂停线程时,我仍然只能暂停工作线程,而不能暂停卡住的线程。

请帮我解决这个问题,这是一件很难的事情,因为导致进程卡住的事情并不总是发生,所以它使得调试变得非常困难。
我正在使用VSCode调试python应用程序。
我从启动调试器的地方有一个主要的python文件。我可以在此文件中放置断点,但是如果要将断点放置在主文件调用的其他文件中,则将其作为“未验证的断点”获取,调试器将忽略它们。
如何更改我的位置,launch.json以便能够在项目中的所有文件上设置断点?
这是我目前的情况launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}"
},
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"localRoot": "${workspaceFolder}",
"remoteRoot": "${workspaceFolder}",
"port": 3000,
"secret": "my_secret",
"host": "localhost"
},
{
"name": "Python: Terminal (integrated)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}, …Run Code Online (Sandbox Code Playgroud)python breakpoints visual-studio-code vscode-settings vscode-debugger
我可以在 Android Studio 的模拟器中运行我的 Flutter 项目。我试图在 VS Code 中以调试模式 (f5) 运行相同的代码,但我收到一条错误消息:
在启动配置中设置“程序”值(例如“lib/main.dart”),然后再次启动。
因此,我将启动配置更新为以下内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "Dart & Flutter",
"request": "launch",
"type": "dart",
"program": "lib/main.dart"
}
]
}
Run Code Online (Sandbox Code Playgroud)
更新后,当我尝试 f5 时,出现以下错误:
您的启动配置引用了一个不存在的程序。如果您在启动时遇到问题,请检查“.vscode/launch.json”文件中的“程序”字段。
我确实有一个 main.dart 文件?
任何帮助将不胜感激。
我希望能够直接从 VSCode 编译和运行 react 应用程序,然后进入调试模式(无论它是 javascript 还是 typescript react 应用程序,都可以这样做)。
预期的步骤是:
npm start。如何才能做到这一点?
如何在 VS Code 的 python 调试控制台中运行一个简单的循环?当我尝试输入以下内容时:
for el in dataset:
Run Code Online (Sandbox Code Playgroud)
它给了我下面的错误。我似乎能够输入变量名,但不能像在普通 python REPL 中那样输入多行命令。
Traceback (most recent call last):
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 416, in evaluate_expression
compiled = compile(_expression_to_evaluate(expression), '<string>', 'eval')
File "<string>", line 1
for el in dataset:
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 969, in internal_evaluate_expression_json
pydevd_vars.evaluate_expression(py_db, frame, expression, is_exec=True)
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 368, in new_func
return _run_with_unblock_threads(original_func, py_db, curr_thread, frame, expression, is_exec)
File …Run Code Online (Sandbox Code Playgroud) vscode-debugger ×10
python ×3
dart ×2
javascript ×2
node.js ×2
breakpoints ×1
debugging ×1
flutter ×1
go ×1
html ×1
pm2 ×1
reactjs ×1