Xdebug的
我试图减少我的脚本内存使用甚至更多。 我试图让我的脚本使用xdebug生成输出来分析内存使用情况。 这是一个基于CLI的脚本,有shebang
#!/usr/local/bin/php -q
我传递一个参数给它并检查它
$argc > 1 && is_numeric( $argv[1] )
当我登录到ssh并执行./script.php 90
并添加此代码时,
if( $argv[1] == 90 ) {
xdebug_start_trace('/var/www/html/logs/' . rand(1,9999999) );
}
我在logs
文件夹中看到输出文件。
但是当我在生产脚本中没有使用if
语句的xdebug_start_trace
时,没有输出文件被创建。
script.php
是从另一个php文件中调用的,放在另一个文件夹中,所以我使用绝对路径在文件名中,并使用exec
调用它并追加&> /dev/null &
,以便它在后台运行。
这真让我抓狂! 帮助,伙计们!
不知道为什么发生这种情况,但我得到了一个错误
PHP Notice: Function trace already started in /var/www/html/script.php on line 9
[请PHP Notice: Function trace already started in /var/www/html/script.php on line 9
“编辑”获取信息]
虽然,没有代码触发这个xdebug_start_trace();
。
所以我把xdebug_stop_trace();
在xdebug_start_trace();
之前xdebug_start_trace();
,一切正常。
奇怪。
编辑:我得到了上述错误,因为我在php.ini中设置了auto_trace为On
另外,事实证明,如果您将&> /dev/null &
追加到命令中,则不会生成xdebug日志。 但是,如果我执行&> /dev/null
(注意最后一个&
),则xdebug会生成日志。 这可能与自定义输出有关,xdebug必须在内部使用。 不知道,但。
你意思是 ...
if( $argv[1] == 90 ) {
xdebug_start_trace('/var/www/html/logs/' . rand(1,9999999) );
}
...导致跟踪文件和...
xdebug_start_trace('/var/www/html/logs/' . rand(1,9999999) );
......只是抛出调解性声明让你没有?
而且,我真的不能相信跟踪从哪里开始......所以必须有一个函数调用的地方。 鉴于你的描述,它似乎像你的设置是相当混乱。 所以我不认为你的问题与XDebug有任何关系,但是这种跟踪现象只是你偶然发现的一个随机症状。
尝试设置一个尽可能简单的脚本,并且仍然给你这个。 然后再次发布发生了什么事情,B / C你的描述也相当混乱恕我直言。
最好
拉斐尔
链接地址: http://www.djcxy.com/p/37161.html上一篇: xdebug