You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20中PHP Xdebug调试时无故触发未定义变量错误求助

Xdebug调试时出现Undefined variable: raw_input_data问题排查

环境信息

  • 系统:Ubuntu 20
  • PHP版本:
PHP 7.4.33 (cli) (built: Feb 14 2023 18:31:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
 with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
 with Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick Rethans
  • Xdebug配置:
zend_extension = xdebug
xdebug.mode=debug
xdebug.start_with_request=start
xdebug.log_level = 0

问题现象

业务代码正常运行时raw_input_data变量无异常,另一台同版本PHP/Xdebug的机器运行源码也无问题,但调试过程中触发以下通知错误:

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: raw_input_data
Filename: /debug-eval
Line Number: 1
Backtrace:
File: xdebug://debug-eval

Line: 1

Function: _error_handler

已尝试的无效操作

  • 重装Xdebug
  • 修改xdebug.log_level为0

解决办法

  1. 检查IDE调试面板的求值语句:错误来自xdebug://debug-eval,说明是IDE在调试时自动执行了引用raw_input_data的代码。打开IDE的调试监视列表、即时求值窗口或断点条件设置,删除所有包含该变量的表达式。
  2. 关闭IDE自动求值功能:部分IDE默认会在步进调试时自动对变量求值,可在调试设置中关闭该选项(例如PhpStorm:Settings > Languages & Frameworks > PHP > Debug,取消勾选「Evaluate expressions on step」)。
  3. 补充Xdebug网络配置:添加以下配置到php.ini,确保Xdebug与IDE连接正常:
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
  1. 清理IDE缓存:IDE缓存损坏可能导致调试逻辑异常,执行缓存清理后重启IDE(例如PhpStorm:File > Invalidate Caches...,选择「Invalidate and Restart」)。
  2. 临时调整错误报告级别:在代码入口添加error_reporting(E_ALL & ~E_NOTICE);,排除通知级错误对调试的干扰,确认是否为业务错误处理函数过于严格导致。

内容的提问来源于stack exchange,提问作者user3559233

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:25:28