当前位置: 首页 > news >正文

常州网站seo代理加盟wordpress区块链主题

常州网站seo代理加盟,wordpress区块链主题,莱芜市莱城区城乡建设局网站,公司网站规划核心原理#xff1a;调试器协议和“调试器扩展”VSCode 的调试功能并非内置在核心编辑器里#xff0c;而是通过一套名为 Debug Adapter Protocol (DAP#xff0c;调试适配器协议) 的通用协议实现的。您可以把它想象成 “翻译官”模式#xff1a;VSCode#xff08;客户端调试器协议和“调试器扩展”VSCode 的调试功能并非内置在核心编辑器里而是通过一套名为 Debug Adapter Protocol (DAP调试适配器协议) 的通用协议实现的。您可以把它想象成 “翻译官”模式VSCode客户端提供统一的调试用户界面如调试控制台、变量查看窗口、调用堆栈等。调试适配器服务端/翻译官一个独立的进程由各个调试器扩展Debugger Extension 提供。具体调试器如 GDB, LLDB, Node.js Debugger真正执行调试命令的工具。工作流程如下当您在 VSCode 中启动调试例如按 F5时VSCode 会根据您的配置决定启动哪个“调试适配器”。VSCode 的调试 UI 会向“调试适配器”发送符合 DAP 协议 的命令例如 launch、 setBreakpoint。“调试适配器”将这些标准化命令“翻译”成底层具体调试器如 node --inspect-brk, gdb, python -m debugpy能理解的命令并与之通信。底层调试器的响应如命中断点、变量信息再被“调试适配器”翻译成符合 DAP 协议的响应发回给 VSCode。VSCode 接收到响应后在 UI 上更新调试状态。这种设计的巨大优势在于VSCode 团队和调试器扩展团队可以各自独立发展。只要扩展遵循 DAP 协议就能为任何语言提供调试支持。流程图示意如下说明概念说明DAP (调试适配器协议)VSCode 与各种调试器通信的通用“语言”是实现多语言调试的基石。调试器扩展提供“调试适配器”这个“翻译官”并声明自己的调试能力type, label。默认下拉项动态生成的。由已安装的、且与当前文件/项目相关的调试器扩展提供并非 VSCode 内置。launch.json用户自定义的调试配置优先级最高用于覆盖和细化扩展提供的默认配置。工作原理VSCode UI --DAP协议-- 调试适配器扩展提供 -- 底层调试器如 node, gdbVSCode调试按钮旁默认下拉项的来源默认的下拉项如 Node.js, Python Debugger自于安装的调试器扩展。扩展声明调试能力 当一个扩展如 MS-Python.python被安装时它会在其 package.json 文件中通过 contributes 字段声明它能为哪些调试场景提供支持。 // 这是 Python 扩展 package.json 的片段 contributes: {debuggers: [{type: python, // 这就是之后会出现在 launch.json 中的 typelabel: Python Debugger, // 这就是在下拉菜单中显示的名字languages: [python], // 为哪些语言文件提供调试// ... 其他配置}] }VSCode 收集并生成列表VSCode 在启动时会读取所有已安装扩展的 contributes.debuggers 声明。当您打开一个项目文件夹特别是当您打开特定语言的文件如 .py 文件时VSCode 会智能地触发Trigger 相关的调试配置。动态生成默认项如果您的工作区没有 launch.json 文件VSCode 会基于这些触发到的调试器扩展动态生成一个默认的下拉菜单选项列表。这就是您看到的 Python Debugger, Node.js 等选项的来源。它们不是硬编码在 VSCode 里的而是由扩展动态提供的。创建 launch.json当您从下拉菜单中选择了其中一个默认项例如 Python Debugger并按下 F5 时VSCode 会自动在您的项目 .vscode 文件夹下创建一个 launch.json 文件。并使用该调试器扩展提供的默认配置模板来填充这个文件。调试器与文件不匹配的处理前面提到当从下拉菜单中选择了其中一个默认项例如 Python Debugger并按下 F5 时VSCode 会自动在项目的 .vscode 文件夹下创建一个 launch.json 文件。如果选择的是cmaker debugger而没有安装python扩展但打开的是一个py文件那么还会创建这个launch.json吗不会创建或者会创建一个无法工作的 launch.json。 VSCode 的智能触发机制会阻止这种不匹配的情况发生。1. 下拉菜单的生成逻辑基于“触发器”VSCode 下拉菜单中的默认调试选项并非凭空出现。它们是由已安装的扩展声明并由 VSCode 根据当前上下文动态触发出来的。扩展声明一个扩展如 CMake会在它的 package.json 里写明“我提供了一个 type 为 cmake 的调试器我主要对 cpp 和 c 文件感兴趣”。上下文触发当您打开一个 .py 文件时VSCode 会判断“当前活动的编辑器是 Python 文件”。它会去寻找那些声明了对 python 语言感兴趣的调试器扩展。所以在您描述的场景中 如果您没有安装 Python 扩展但打开了一个 .py 文件VSCode 的调试下拉菜单里根本就不会出现 Python Debugger 这个选项。因为提供这个调试器的扩展ms-python.python不存在。相反下拉菜单里可能会出现CMake Debugger但请注意CMake 扩展通常只对 C 和 C 文件感兴趣。它不会主动为一个 .py 文件触发自己。一些更通用的调试选项如果其他已安装的扩展提供了的话。或者直接显示 “No Configurations”并提示您创建一个 launch.json。因此您很难有机会在打开 .py 文件时在下拉菜单里选中 CMake Debugger。2. 如果强行选择或手动创建会怎样假设您通过某种方式比如手动编辑了扩展的配置或者从其他项目复制了 launch.json创建了一个如下配置 {version: 0.2.0,configurations: [{name: 强行用CMake调试Python,type: cmake, // 调试器类型指定为cmakerequest: launch,program: ${file} // 指向当前打开的py文件}] }当您按下 F5 尝试运行此配置时会发生以下情况VSCode 会识别到配置中的 type: cmake。它会在已安装的扩展中寻找谁能处理 cmake 类型的调试请求。它会找到并唤醒 CMake 扩展提供的 Debug Adapter。CMake Debug Adapter 被启动它期望接收到的 program 参数是一个可执行文件比如由 C 代码编译出来的 /path/to/your/program。然而您传给它的却是一个 /path/to/your/script.py 文本文件。CMake 的调试器底层会调用 GDB 或 LLDB 这样的原生调试器并尝试执行gdb /path/to/your/script.py。GDB 会尝试去解析这个 Python 文件但它本质上是一个文本文件不是 GDB 能理解的 ELF 可执行文件格式。结果就是最好的情况GDB 报错提示“不是可执行文件格式”调试失败。最坏的情况GDB 试图读取它但由于格式完全不匹配导致一些稀奇古怪的错误。总之这个过程绝对不会成功运行您的 Python 脚本。 调试器和被调试程序必须匹配。就像你不能用汽车维修手册去修理一架飞机一样。所以在进行某种编程时在vscode中一定要先安装对应的扩展扩展中最好都包含了调试适配器Debug Adapter原生调试器Native Debugger这样其实就有了你针对你的项目或者工作空间配置运行的基础了。对于Python虚拟环境的项目推荐配置launch.json这并不是VSCode的硬性要求但这样做可以带来巨大的好处避免很多令人头疼的问题。为什么需要为虚拟环境配置 launch.json主要原因如下确保使用正确的解释器您的系统上可能安装了多个Python版本如Python 3.8, 3.9, 3.11和多个虚拟环境。launch.json 中的 python 配置项可以精确指定使用哪个虚拟环境下的 python 解释器来运行你的程序确保不会误用系统Python或其他环境的Python。保证依赖包可用性每个虚拟环境都有其独立的依赖包库。如果你不指定虚拟环境调试器可能会从一个没有安装所需包如pandas, numpy, requests的环境中启动导致 ModuleNotFoundError。在 launch.json 中配置正确路径后调试器会自动“激活”该环境确保脚本能访问到所有已安装的依赖。实现一键调试与运行配置好后你只需要按 F5 就可以直接启动调试无需手动激活虚拟环境、再输入 python src/main.py 等命令。极大地提升了开发效率。支持复杂的启动参数如果你的程序需要命令行参数、环境变量如 API_KEY、特定的工作目录等这些都可以在 launch.json 中一次性配置好一劳永逸。 如何为虚拟环境配置 launch.json配置过程非常简单VSCode 提供了非常智能的引导打开命令面板 (CtrlShiftP)。输入并选择 Debug: Add Configuration然后选择 Python。选择调试模式例如 Python File调试当前文件。VSCode 会自动在项目根目录的 .vscode 文件夹下创建 launch.json 文件其内容已经自动使用了当前在VSCode底部状态栏选择的Python解释器也就是你的虚拟环境。一个典型的、配置了虚拟环境的 launch.json 如下 {version: 0.2.0,configurations: [{name: Python: Current File,type: python,request: launch,program: ${file},console: integratedTerminal,justMyCode: true,python: /path/to/your/venv/bin/python // 最关键的一行在Windows上是 python: ${workspaceFolder}/venv/Scripts/python.exe}] }关键配置项解读python: 这是最重要的配置。它明确指定了要使用的Python解释器的绝对路径。VSCode会自动帮你填充当前选择的虚拟环境的路径。program: ${file}: 表示调试当前在编辑器中打开的文件。console: integratedTerminal: 建议设置为在集成终端中运行这样程序的输入输出行为更正常。justMyCode: true: 只调试你自己写的代码不会进入第三方库的内部。 如果不配置会怎样如果你不配置 launch.json直接按 F5 使用VSCode动态生成的默认选项可能会出现以下情况行为不确定VSCode会使用它认为的“默认”Python解释器这个解释器可能不是你的项目虚拟环境从而导致依赖缺失的错误。每次都需要手动选择你需要在弹出的列表中选择调试配置或者需要手动确保右下角的解释器选择是正确的。总结与最佳实践场景建议原因简单的单文件脚本可选可能用系统Python就能运行依赖简单。任何使用虚拟环境的项目必需确保环境隔离、依赖正确、一键调试。需要启动参数或环境变量的项目必需这些复杂配置必须在 launch.json 中预设。因此对于绝大多数正式的Python项目开发特别是基于虚拟环境的项目第一件事就是配置好 launch.json。 这是一个“一次配置长期受益”的最佳实践能保证团队所有成员和你在不同机器上的运行环境都是一致且正确的。
http://www.pierceye.com/news/757823/

相关文章:

  • 营销型网站四大功能吉林市网站制作
  • 如何制作钓鱼网站网页制作基础教程9787121095306教案
  • 专业定制网站企业吉林省住房城乡建设厅网站首页
  • 免费高清素材网站方维网络科技有限公司
  • 长春行业网站重庆智能建站模板
  • 北湖区网站建设公司wordpress的cute主题
  • 沈阳网站建设 景乔科技网站制作杭州
  • 网站维护工程师月薪多少精品网站建设公
  • 永久免费企业网站申请网站开发主框架一般用什么布局
  • 网站做非经营性广告需备案python免费看电影的应用
  • 网站分哪些种类自己做网站模版
  • 汪峰做的音乐网站长沙制作公园仿竹护栏实体厂家
  • 深圳专业网站建设公司排名好的h5网站模板
  • h5做网站教程网店营销的推广方法有哪些
  • 网站关键词快速排名工具wordpress子主题
  • 做百度网站那家好google 网站质量问题
  • 网站建设维护书网站资料清单
  • 网站建设公司 深圳信科网站维护计划
  • 做网站用什么语言比较简单网站seo优化总结
  • 四川省工程建设信息网站南京好的网站设计公司
  • 城市建设单招网站合肥哪个公司做网站好
  • 深圳建站模板建站建筑公司对企业未来希望
  • 商丘网站制作电话文库网站建设
  • 新闻发布网站模板医院网站建设原理
  • 网站开发立项报告网页制作视频教程优质课
  • 网站运营分析竞争对手整站采集wordpress
  • 创建一个网站所需的成本厦门礼品网站商城制作案例
  • 南昌建设企业网站公司游戏源码
  • 网站当电话线做php网站教程视频教程
  • 百度里面的站长工具怎么取消怎么注册公司官网