Xdebug 2升级到3指南

2023-05-16

官方文档:https://xdebug.org/docs/upgrade_guide

升级指南,详细介绍了Xdebug 2和3之间的哪些更改,以及如何重新配置​​您的设置以执行类似的操作。

新概念#
与Xdebug 2不同,在Xdebug 2中,每个功能都有一个启用设置,使用Xdebug 3,您可以将Xdebug置于特定 模式下,可以使用xdebug.mode设置对其进行配置。

此设置与xdebug.start_with_request结合使用是启用功能以及配置Xdebug功能激活时间的新方法。

其背后的想法是,重要的是Xdebug仅具有实际需要的功能的开销。例如,同时激活“分析”和“步骤调试”是没有意义的。

除了使用xdebug.mode设置模式外,还可以使用XDEBUG_MODE环境变量来设置模式 。如果此环境变量处于活动状态,它将覆盖通过xdebug.mode设置的模式。

请注意,必须在PHP进程启动时设置该模式,因此与它替换的Xdebug 2中的设置不同,您不能在每个请求(例如.htaccess或)上加载的配置文件中对其进行设置 .user.ini。

确保仅启用了“步骤调试”,而不是:

xdebug.remote_enable = 1
xdebug.default_enable = 0
xdebug.profiler_enable = 0
xdebug.auto_trace = 0
xdebug.coverage_enable = 0
您现在只能这样做:

xdebug.mode =调试
或者,在命令行上:

导出XDEBUG_MODE =调试
PHP脚本名称.php
您可以使用新的xdebug_info()函数查看Xdebug的配置。其输出还将包括有关调试连接尝试和文件权限的其他诊断信息。

步调试#
Xdebug的默认调试端口已从更改 9000为9003。

在命令行上激活
不必将XDEBUG_CONFIG环境变量设置为 idekey=yourname,而必须将其设置XDEBUG_SESSION为 yourname:

导出XDEBUG_SESSION = xdebug_is_great
自动启动调试器
该xdebug.remote_autostart设置已被删除。而是将xdebug.start_with_request设置为yes。

在请求期间启动调试器
在Xdebug 3中,仅当xdebug.start_with_request设置为时,调用xdebug_break()才会启动调试会话。trigger

当xdebug.start_upon_error = yes(替代Xdebug 2 xdebug.remote_mode=jit)时,它将不再触发调试会话 。

当xdebug.start_upon_error设置为时yes,无论xdebug.start_with_request的值是什么,都会在PHP通知或警告或抛出Throwable时启动调试会话。

变更后的功能特性#
xdebug_break()
当xdebug.start_upon_error设置为yes(Xdebug 2的替代品 xdebug.remote_mode=jit)时,此函数将不再启动调试会话 。

当xdebug.start_with_request设置为时,它仍将启动调试请求trigger。

更改后的配置设置#
Xdebug 3已删除并更改了许多配置设置。本节列出了已删除的设置及其替换。

xdebug.auto_trace #
将xdebug.mode =trace与xdebug.start_with_request =一起使用yes。

xdebug.collect_includes #
已被删除。文件名include()和 require()现在总是包含在发展援助和 功能跟踪输出。

xdebug.collect_params #
已被删除。现在,在“开发辅助工具”和“ 功能跟踪”输出中,带有变量内容和参数名称的参数现在始终可见。

xdebug.collect_vars #
已被删除,它仅与该xdebug_get_declared_vars()功能结合使用,该 功能也已被删除。

xdebug.coverage_enable #
使用xdebug.mode = coverage。

xdebug.default_enable #
使用xdebug.mode = develop。

xdebug.extended_info #
无补发。Xdebug会在需要时自动打开此PHP引擎设置。

xdebug.gc_stats_enable #
使用xdebug.mode = gcstats。

xdebug.gc_stats_output_dir #
使用通用的xdebug.output_dir设置。

xdebug.overload_var_dump #
已被删除。var_dump()现在,当设置 为时, PHP总是通过xdebug_var_dump()重载。所述xdebug_var_dump()函数是可用的独立一个被配置模式。xdebug.modedevelop

xdebug.profiler_enable #
使用xdebug.mode = profile。

xdebug.profiler_enable_trigger #
将xdebug.mode =profile与xdebug.start_with_request =一起使用trigger。

xdebug.profiler_enable_trigger_value #
使用通用的xdebug.trigger_value设置。

xdebug.profiler_output_dir #
使用通用的xdebug.output_dir设置。

xdebug.remote_addr_header #
替换为xdebug.client_discovery_header。

xdebug.remote_autostart #
将xdebug.mode =debug与xdebug.start_with_request =一起使用yes。

xdebug.remote_connect_back #
替换为xdebug.discover_client_host。

xdebug.remote_enable #
使用xdebug.mode = debug。

xdebug.remote_handler #
无补发。Xdebug的步骤调试器仅支持DBGp处理程序。

xdebug.remote_host #
替换为xdebug.client_host。

xdebug.remote_log #
由xdebug.log代替,xdebug.log还包括Step Debugging之外的日志消息。

xdebug.remote_log_level #
替换为xdebug.log_level。

xdebug.remote_mode #
对于req值(原始默认值),请使用 xdebug.mode =debug和 xdebug.start_with_request = trigger。如果xdebug.remote_autostart必须采取原始 行为,请使用 xdebug.start_with_request =yes代替trigger。

对于该jit值,请使用xdebug.mode =debug和 xdebug.start_upon_error = yes。

xdebug.remote_port #
替换为xdebug.client_port。

默认值也已从更改9000为9003。

xdebug.remote_timeout #
替换为xdebug.connect_timeout_ms。

xdebug.show_mem_delta #
已被删除。可以通过将当前帧中的使用情况与前一帧中的使用情况进行比较来计算内存使用情况的差异。

xdebug.trace_output_dir #
使用通用的xdebug.output_dir设置。

xdebug.trace_enable_trigger #
将xdebug.mode =trace与xdebug.start_with_request =一起使用trigger。

xdebug.trace_enable_trigger_value #
使用通用的xdebug.trigger_value设置。

更改功能#
xdebug_disable()
已被删除。

为了防止Xdebug显示堆栈跟踪,请不要develop在xdebug.mode中配置Xdebug的模式,也不要 关闭PHP的 html_errorsINI设置。

xdebug_enable()
已被删除。

要将Xdebug配置为显示堆栈跟踪,请包含 develop在xdebug.mode中。

xdebug_get_declared_vars()
已被删除。

可以通过xdebug_get_function_stack()函数获取此函数返回的信息 。

xdebug_is_enabled()
已被删除,但从未得到过原始记录或支持。

改变常量#
以下常量已更改:

XDEBUG_PATH_WHITELIST
就是现在: XDEBUG_PATH_INCLUDE
XDEBUG_PATH_BLACKLIST
就是现在: XDEBUG_PATH_EXCLUDE
XDEBUG_NAMESPACE_WHITELIST
就是现在: XDEBUG_NAMESPACE_INCLUDE
XDEBUG_NAMESPACE_BLACKLIST
就是现在: XDEBUG_NAMESPACE_EXCLUDE

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xdebug 2升级到3指南 的相关文章

  • 基于Tiny210开发板视频显示

    基于Tiny210开发板视频显示 1 写基于V4L2编程 61 61 61 61 61 61 61 61 videodevice h文件 61 61 61 61 61 61 61 61 61 ifndef VIDEODEVICE H def
  • 纯C++去雾算法

    去雾算法 前言 xff1a 经过不断的改进研究 xff0c 该算法终于稳定 xff0c 高效的问世了 xff01 经过研究使该算法适应大雾环境 xff0c 对该算法的内存优化 xff0c 能够实时的高效的运行 一 实时视频 xff1a 二
  • 致院长的一封信

    致院长的一封信 行了一路 xff0c 梦了一路 xff0c 念了一路 xff0c 伤了一路 xff0c 青春的此岸 xff0c 我眉心微蹙 xff0c 聆听清风诉说着经年的过往 xff1b 走了一路 xff0c 赏了一路 xff0c 听了一
  • LINUX字符设备驱动程序实例

    我是通过UBUNTU10 10测试该驱动程序的 xff0c 系统内核为linux 2 6 35 22 可使用uname r 命令来查看当前内核的版本号 下载安装LINUX内核 xff0c 需要下载和本机一样版本的内核源码 1 xff0c 安
  • c++多态总结

    今天来总结一些c 43 43 中 xff0c 有关多态的知识 多态 xff1a 多态可以简单地概括为 一个接口 xff0c 多种方法 xff0c 程序在运行时才决定调用的函数 xff0c 它是面向对象编程领域的核心概念 接下来 xff0c
  • 600词汇过四级

    600 词汇过四级 A 1 abandon vt 抛弃 xff0c 放弃 abandon oneself to despair 陷于绝望 xff1b abandon oneself to failures 自暴自弃 2 abrupt adj
  • 华清远见c语言学习笔记四

    test c Created on Jun 29 2012 Author 孙旭 华清远见实验室 1 include lt stdio h gt include lt stdlib h gt include lt string h gt in
  • 华清远见c语言学习笔记六

    test c Created on Jun 29 2012 Author 孙旭 华清远见实验室 1 include lt stdio h gt 找出一个字符串中的数字 include lt string h gt int main char
  • c++示例代码-友元

    一 友元函数 include lt iostream h gt include lt math h gt class Point Point类声明 public 外部接口 Point int xx 61 0 int yy 61 0 X 61
  • C/C++空指针总结

    在C中 在C中 xff0c 使用NULL表示空指针 xff0c 实际上 xff0c NULL被定义为 xff1a define NULL void 0 其中 void 0 表示对 0 进行强制转换 xff0c 转换为一个void类型的指针
  • Windows11镜像下载及安装

    现在微软已正式推出Windows 11预览版系统 xff0c 目前最新系统版本是22000 71 xff0c 正式版可能会在10月份推出 xff0c 届时拥有正版Windows 10系统的就可以通过Windows Update工具免费在线升
  • ROS2安装及基础知识介绍

    ros介绍 ROS xff08 Robot Operating System xff09 是一个开源的机器人操作系统 xff0c ROS系统是由大量节点组成 xff0c 其中任何一个节点都可以通过发布 订阅的方式与其他节点进行通信 举个栗子
  • Ubuntu Gnome GTK程序开机启动

    启动图标准备 GTK程序 开机启动需要首先制作desktop文件 例如 myapp autostart desktop 如下 xff1a Desktop Entry Encoding 61 UTF 8 Name 61 App Comment
  • 学习记录

    最近打算用visio画个流程图 xff0c 看看会不会遇到什么坑 1 最近打算用visio画几个流程图 xff0c 遇到什么问题在记录一番 2 分析学习一下系统权限的分配 xff0c 做到可以配置权限 xff0c 灵活一些 用户 gt 角色
  • 计算机专业学生,大三了找技术岗,怎么写一份好简历?内附269份简历模板

    计算机专业学生 xff0c 大三了找技术岗 xff0c 怎么写一份好简历 xff1f 内附269份简历模板 大家好 xff0c 我是好好学习 xff0c 天天编程的博主 xff0c 一个每天在互联网上种菜和砍柴的程序员 因为疫情的影响 xf
  • Digest Authentication 摘要认证(转载)

    原文 Digest Authentication 摘要认证 weixin 34007906的博客 CSDN博客 摘要 式认证 xff08 Digest authentication xff09 是一个简单的认证机制 xff0c 最初是为HT
  • 面试问到 Promise,这样回答最完美了

    promise是什么 xff1f Promise是异步编程的一种解决方案 xff0c 比传统的回调函数和事件更合理和强大 所谓Promise xff0c 简单来说就是一个容器 xff0c 里面保存着某个未来才会结束的事情 xff08 通常是
  • Linux编译安装内核

    0 前言 Linux系统中可同时安装多个内核镜像 xff0c 启动时选其一运行即可 xff0c Ubuntu14 04安装Linux内核 介绍了通过apt get工具安装内核的方法 xff0c 本文将介绍如果由源码安装新内核 验证版本 xf
  • Ubuntu 16.04 上用RealSense ZR300跑Vins Mono

    Ubuntu 16 04 上用RealSense ZR300跑Vins Mono 这篇博客主要讲使用RealSense ZR300运行Vins Mono xff0c 主要包括 xff1a xff08 1 xff09 ROS上RealSens
  • 一文熟悉golang编写k8s应用部署工具

    背景 xff1a 在上篇文章里 xff0c 完成了一个简陋的spring cloud 43 k8s的应用系统 xff0c 那么如果手工部署的话 xff0c 那得分别打包5个服务 xff0c 打5个镜像 xff0c 然后安装5个服务 凡是麻烦

随机推荐

  • jdk11安装后不自动安装jre的问题

    回寝之后我又重新自己从头配置了一遍jdk11 关于jdk11安装后不自动安装jre的问题 xff1a 虽然安装jdk11之后可以运行java version查看版本 xff0c 但还是感觉很奇怪 查了一下 xff0c 现在的jdk本身也包含
  • 说说家乡的互联网-江西龙南

    刚好在CSDN查资料 xff0c 看到这个征文 xff0c 勾起年少回忆 xff0c 遂写下此文 2003年 xff0c 我刚上初一 xff0c 学校开设了微机课 xff0c 我第一次接触了互联网 十一 xff0c 二岁的孩子对新事物充满了
  • Python 内部函数修改外部变量的值报错

    今天写题时遇到了这样一个问题 xff1a UnboundLocalError local variable 39 total 39 referenced before assignment 错误出现在我试图通过内部函数修改外部变量的值 xf
  • go get xxx: disabled by GOPRIVATE/GONOPROXY解决方案

    go拉包比如go get的时候出了这个错 xff0c 资料比较少 xff1a disabled by GOPRIVATE GONOPROXY 长话短说 xff0c 解决方案 xff1a 给你的GOPROXY加上direct xff0c 注意
  • Window10系统安装V-rep教程(有百度网盘文件包)

    Window10系统安装V rep教程 64 meng 看了很多教程 xff0c 都没有找到适合Windows10的V rep安装教程及安装包 xff0c 官网上又那么慢 xff08 最近更新了篇博客 xff0c 大家需要其他版本的请移步
  • Integer和int的区别

    Integer是int的包装类 int是基本数据类型 最主要的区别就是这句 一个是基本数据类型 一个是类 但其实其中隐含的细节很多 比如 Integer的默认初始值是null xff0c 而int的默认初试值是0 Integer变量必须先实
  • 如何配置Filebeat收集日志文件

    Filebeat7 6 日志输入 filebeat inputs type log paths var log log var path2 log 您可以添加额外的 配置设置 xff08 如fields xff0c include line
  • 在 Mac 上的“照片”中删除照片或恢复删除的照片

    从图库中删除照片和视频后 xff0c 它们会放在 最近删除 相簿中并保留所显示的天数 xff0c 然后才会永久删除 您可以在该时间段结束前恢复项目 如果打开了 iCloud 照片 xff0c 您可以在 30 天内从 iCloud 恢复照片和
  • php获取数组第一个和最后一个元素的key

    PHP 7 3 0之前的版本获取数组第一个和最后一个元素的key的几种方法 span class token variable a span span class token operator 61 span span class toke
  • PHP源码中EXPECTED和UNEXPECTED的作用

    经常能在源码中很多分支条件判断加了这两个宏 了解具体的作用 例如 xff1a span class token keyword if span span class token punctuation span span class tok
  • 使用PHP实现一个简单web服务器

    web服务器是基于http协议 xff0c 将对应的文件传输给客户端的服务器 web服务器是什么 web服务器是基于http协议 xff0c 将对应的文件传输给客户端的服务器 HTTP协议 http 协议的请求及响应方式设计 http请求信
  • 安装php多版本管理工具phpenv

    1 Install phpenv Install phpenv span class token function git span clone https github com madumlao phpenv git phpenv Ins
  • 导入阿里源maven库证书

    在在maven gt reimport 时出现如下的错误 Could not transfer artifact org springframework boot spring boot starter parent pom 1 3 8 R
  • 项目使用多个maven库的方法

    有时在项目中需要使用第三方提供的SKD xff0c 然而这些Jar包是没有在Maven中央仓库的 需要导入一个知识的Maven库 导入方法有以下两种 xff1a 第一种方法是在POM中指定要使用的Maven span class token
  • mysql8初始密码及root密码修改

    安装mysql8之后没有办法登录 xff0c 初始密码是多少 xff1f 初始密码在 etc mysql debian cnf 修改root帐号 ALTER USER span class token string 39 root 39 s
  • ros学习(一): ros的bag包读取错误问题及解决方法

    一 ERROR bag unindexed 2021 6 23 0103all bag Run rosbag reindex 1 问题 想要跑一个很久没有用的 bag文件 xff0c 运行命令 xff1a rosbag info xxx b
  • BaiduPCS-Go出现403 Forbidden错误解决方法

    今天使用BaiduPCS Go下载百度云资源时 xff0c 下载一个比较大的文件时下载到一半就出现了403 Forbidden错误 xff0c 之后就再也无法下载了 上网查了下 xff0c 发现很多人都说时账号被封 xff0c 但是我试了下
  • ubuntu创建桌面快捷方式

    有些软件是自己安装的 xff0c 并不有在启动器创建快捷方法 使用起来很不方便 xff0c 那么就需要自己来手动创建了 在 usr share applications 目录下创建与应用程序同名的 desktop文件 Typora desk
  • SSH配置公钥快速登录服务器

    使用多个git服务器每次都需要输入帐号密码 xff0c 这个是不能忍受的 可以使用ssh配置公钥快速登录 xff0c 不需要再输入密码了 xff0c 很快捷 生成 添加SSH公钥 ssh keygen t rsa C span class
  • Xdebug 2升级到3指南

    官方文档 xff1a https xdebug org docs upgrade guide 升级指南 xff0c 详细介绍了Xdebug 2和3之间的哪些更改 xff0c 以及如何重新配置 您的设置以执行类似的操作 新概念 xff03 与