设置角度 + 电子调试配置,它正在缓慢但肯定地粉碎我的灵魂。出于某种原因,渲染过程中没有击中断点(VSCode 显示错误Breakpoint ignored because generated code not found (source map problem?)")。
我的调试配置看起来像这样(完整的回购在这里):
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Electron: Main",
"protocol": "inspector",
// Prelaunch task compiles main.ts for Electron & starts Angular dev server.
"preLaunchTask": "Build: All",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
"runtimeArgs": ["--remote-debugging-port=9223", "--serve", "."],
"windows": {
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
}
},
{
"name": "Electron: Renderer",
"type": "chrome",
"request": "attach",
"port": 9223,
"webRoot": "${workspaceFolder}",
"timeout": 30000,
"urlFilter": "http://localhost:4200/*", …Run Code Online (Sandbox Code Playgroud) debugging electron visual-studio-code angular vscode-debugger
VS Code 在过去几天中显示出从我的电脑进入我的电脑的异常行为。我无法运行简单的 java 代码。一开始,它给出了一个错误:
> 在无效的源代码发布级别 13 启用预览功能,只能在源代码级别 14Java 启用预览(2098258)
编译结果以:`
错误:无法找到或加载主类 Lol 导致:java.lang.ClassNotFoundException:Lol
Lol 是我在其中定义 main 方法的类名。
class Lol
{
public static void main(String args[])
{
System.out.println("write the String");
}
}
Run Code Online (Sandbox Code Playgroud)
每次我陈述一个新项目时,它都会向我展示完全相同的结果,并最终为所有当前和以前构建的 Java 代码给出此错误。
我已将 jdk14 安装到我的电脑中,并在阅读有关 stackoverflow 的一些解决方案后正确添加了路径。但这根本没有帮助。
谁能告诉我问题到底出在哪里???
看到建议为“相似”的问题,似乎大多数人想要的与我想要的相反。我想要的是 Vs-code 的调试器在错误点停止,即使在 try catch 中(通常会这样做)。
但是,当在像这样的 try catch 中时,它所做的并不是停止:
import traceback
try:
main() # has bugs I'm trying to debug
except Exception as e:
send_email(traceback.format_exc())
send_email(e)
Run Code Online (Sandbox Code Playgroud)
我知道这可能是一件奇怪的事情,并且 vs-code 的调试器可能运行正确(因为我的代码告诉它如何处理异常!)但我有一些错误,我想调试而不是捕捉。事实上,我的外部 try catch 就在那里,因为我正在使用一个集群,当有任何错误时,它会向我发送电子邮件并告诉我有关它们的信息。否则我就不会在我的主要代码周围有一个 try catch 。
当我实际调试时,有没有办法告诉 vs-code 忽略我的尝试捕获?
我在写这篇文章时的一个想法是改变我捕捉到的异常类型……虽然在调试期间我希望它总是停止,而在不调试时我希望它永远不会停止并向我发送一封包含漏洞。
有任何想法吗?
新错误:
Exception has occurred: TypeError
catching classes that do not inherit from BaseException is not allowed
Run Code Online (Sandbox Code Playgroud)
使用我的EmptyException答案时:
class EmptyError(Exception):
def __init__(self):
pass
Run Code Online (Sandbox Code Playgroud) 像这样初始化一个类:
var x = new Item()
{
ID = (int)...,
Name = (string)...,
..
};
Run Code Online (Sandbox Code Playgroud)
我在其中一项任务中收到 InvalidCastException。它们有很多,即使我逐行运行调试器,整个表达式也会发生异常。异常没有给出任何线索,它试图将什么转换为什么。
有没有办法单独调试每个作业?我已经看到调试器在表达式上分别停止了 3 次,foreach(x in y)所以在这里没有这样做似乎有点奇怪,并且有损使用这种方便的初始化语法的吸引力。也许我可以使用更细粒度的调试步骤?
几年来,我一直在 Windows 中使用 VSCode + Docker,并且设法拥有一个完全正常工作的开发环境,没有任何问题。
最近我用 WSL2 设置了一个新的开发环境。将我所有的项目、库、CLI 等移动到 WSL,使用带有 WSL2 容器的 Docker Windows 和 Windows 上的 VSCode 远程连接到 WSL。一切都非常顺利,我喜欢我可以将一切分开的事实。
但是最近我遇到了一个我无法解决的问题,我失去了调试 PHP 文件的能力。我正在使用 VSCode 远程 WSL 扩展来处理 WSL 内的项目,但是当我尝试调试时,没有任何反应。
对于我使用的每个开发环境(Windows、MacOS 和 WSL),我的 VSCode 中都有树调试设置。除 WSL 外的所有工作。当我尝试使用 WSL 进行调试时,实际上什么也没发生,没有输出错误,没有调试控制台信息,什么都没有...
这是我的 VSCode 调试设置:
{
"version": "0.2.0",
"configurations": [{
"name": "Listen for XDebug Win10",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"externalConsole": false,
"pathMappings": {
"/var/www/project-a/api": "\\\\wsl$\\Ubuntu\\home\\ubuntu\\PROJECTS\\project-a\\api",
},
"ignore": [
"**/vendor/**/*.php"
]
},
{
"name": "Listen for XDebug MacOS",
"type": "php", …Run Code Online (Sandbox Code Playgroud) 我使用 WSLcode .从 Windows 终端中的项目目录启动 VSCode 。VSCode 启动时,状态栏显示“Auto Attach: Off”:
单击状态栏中的“自动附加:关闭”不会切换它。
然后我在 VSCode 的集成终端中启动我的项目npm run debug,它对应于 中的以下scripts行package.json:
"scripts": {
"debug": "NODE_ENV=development DEBUG='knex:*' nodemon --inspect ./server.js"
}
Run Code Online (Sandbox Code Playgroud)
但是,调试器不是自动附加的,因此我需要Attach从此处左侧显示的“运行”面板手动运行配置:
调试器可以工作,但我仍然无法将其切换Auto Attach: Off为On:
即使我Ctrl+Shift+P --> Debug: Toggle Auto Attach,也没有任何反应。即使我这样做后重新启动 VSCode。
因此,总而言之,我如何code .从 Windows 终端启动我的 VSCode,然后输入npm run debug并拥有 VSCode,运行我的程序并自动附加调试器?我还需要服务器在文件更改时重新启动,这就是我nodedemon在npm run debug脚本中使用的原因。
我是否需要:
改launch.json配置?尽管我基本上已经尝试launch.json了 VSCode …
node.js visual-studio-code windows-subsystem-for-linux vscode-debugger vscode-remote
在gdbI can type watch &variable,然后继续,每当有内容写入该地址时,gdb 就会中断。
我正在使用 vscode 进行调试并希望做同样的事情(这与观察窗口不同,它只会在断点被击中后显示变量值)。是否可以?
我可以通过单击“+”并输入来手动添加断点,&variable但它永远不会变为活动状态并表示该模块尚未加载。我试过-exec watch &variable在调试器控制台窗口中手动输入,但在使用播放按钮继续执行后它挂起(vscode 认为程序再次运行,但事实并非如此)。
这有一些 github 问题,但它们无缘无故地关闭了:
我不是 VSCode 的专家,但我看到从 1.38 版开始,可以添加观察点(修改给定内存区域时中断的断点,许多调试器支持的功能),至少对于 C/C++ ,请参阅此处https://jaxenter.com/vs-code-1-38-161797.html和此处https://github.com/microsoft/vscode/issues/58304。现在我的VSCode版本是1.48.2,还是不知道怎么弄,也找不到合适的解释。如果有人可以解释如何做(或是否可行),那肯定对我和 VSCode 社区都非常有益。
我正在尝试使用 debugpy 为 Visual Studio Code 在 docker 中运行的 python 脚本设置本机调试。理想情况下,我只想 F5 并在路上(如果需要,包括构建阶段)。目前,我debugpy.listen(5678)在由 VS 代码编辑器本身内联引起的超时(发生异常:RuntimeError 超时等待适配器连接)或连接被拒绝之间来回跳动。
我从微软提供的文档中创建了一个launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Integration (test)",
"type": "python",
"request": "attach",
"pathMappings": [
{
"localRoot": "${workspaceFolder}/test",
"remoteRoot": "/test"
}
],
"port": 5678,
"host": "127.0.0.1"
}
]
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,构建图像看起来像这样:
FROM python:3.7-slim-buster as base
RUN apt-get -y update; apt-get install -y vim git cmake
WORKDIR /
RUN mkdir .cache src in out config log
COPY requirements.txt . …Run Code Online (Sandbox Code Playgroud) remote-debugging python-3.x docker visual-studio-code vscode-debugger
vscode-debugger ×10
debugging ×2
docker ×2
python-3.x ×2
angular ×1
c ×1
c# ×1
c++ ×1
electron ×1
gdb ×1
java ×1
node.js ×1
php ×1
watch ×1
watchpoint ×1
windows-subsystem-for-linux ×1
wsl-2 ×1