我有一个命令行脚本,它array()通过循环运行一个文件,并使用文件名作为参数来调用辅助对象上的方法.
每次运行脚本时,PHP memory_get_usage报告的数字越来越大
53294264
57019624
61374624
65699176
70230600
75157152
79900392
84630472
89359264
94300016
100031176
105202448
110360808
115777528
121146976
126784824
132366952
Run Code Online (Sandbox Code Playgroud)
直到我出错了
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
Run Code Online (Sandbox Code Playgroud)
很明显,某些东西正在泄漏内存,或某种全局/静态存储区域不断被添加.在PHP中调试此类错误的最佳方法是什么?有没有在PHP中无意中发生这种情况的常见情况?xDebug有一些神奇的选项可以帮助我查明这一点吗?其他工具?
我提出的最好的方法是跟随执行链并通过调用memory_get_usage()来乱丢代码库,直到找到确切的问题,但这似乎是一种单调乏味且低效的方法.
我已经在我的计算机上安装了xdebug和Windows,默认情况下工作正常 - 痕迹很丰富,很漂亮,但在另一台计算机上使用ubuntu 10.10,它是无色的,没有任何格式.我在php.ini中尝试填充xdebug格式化参数,但它对我不起作用:(
我需要做些什么来改善输出格式?
我知道100%的代码覆盖率只是一个目标,但是让一个包含右括号的行计为未覆盖是很烦人的,因为它遵循方法调用,其唯一目的是抛出异常.这是我的基础测试用例类中的一个简单示例,用于演示:
function checkForSkipAllTests() {
if (self::$_skipAllTests) {
self::markTestSkipped(); // [1] always throws an exception
} // [2] shown as executable but not covered
}
Run Code Online (Sandbox Code Playgroud)
由于[1]总是退出方法,因此行[2]实际上是不可达的.有没有办法通过注释方法本身来告诉Xdebug ?markTestSkipped()
我试图让Xdebug远程调试工作,我使用PHPStorm作为我的IDE.我的网络服务器/代码托管在远程机器上(amazon ec2).
我的远程服务器上的php.ini中有以下行(PHP CLI,因为我正在进行PHPUnit调试)
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
Run Code Online (Sandbox Code Playgroud)
由于我是从家庭网络编程的,因此我在个人路由器上打开了端口9000.我将PHPStorm的xdebug服务器设置为指向端口80上的远程服务器,使用Xdebug作为调试器.
现在,当我尝试从PHPStorm调试PHPUnit测试时,它只是说'等待与ide键'12115的传入连接'除外,它每次都会选择一个随机的ide键(我希望PHPUnit在服务器上设置idekey)本身)
我一直试图让这个工作超过10个小时,我已经尝试在php.ini中定义我的特定remote_host而不是使用remote_connect_back,但这也没有用.我试过在php.ini中设置一个idekey,但是效果不好.
反正是否确认Xdebug在Web服务器端按预期工作?如何在不使用Phpstorm的情况下测试我的Xdebug设置,我不知道它是我的家庭网络和远程服务器之间的连接问题还是什么.
任何有助于缩小问题范围的指导都会很棒.
我想知道netbeans中的c ++项目中的构建/清理和构建之间的区别有时候代码运行在其他地方运行它会产生一些错误,任何人都可以建议什么是更好的方式来了解ehen使用构建/清理和构建.
另外,如果你能告诉我简要介绍什么是测试和调试测试,那将有助于......
因为当我只是测试我的代码时,它没有提供所需的功能,当我进行调试测试时,我在某种程度上获得了功能
可能重复:
Xdebug和Netbeans没有相互通信
如何实现xdebug在netbeans.我搜索了很多,我在apache中做了一些事情 php.ini
zend_extension=/path/to/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
Run Code Online (Sandbox Code Playgroud)
我在使用UbuntuOS.
Xdebug主要用于调试复杂的PHP代码.(for loop / foreach)
现在当我点击调试项目netbeans 页脚状态显示搜索xdebug连接并且其未结束未结束意味着连接失败.
我想你得到我想要的东西.
请帮我.
根据Netbeans文档和选项窗格,使立即评估气球"稳定"Xdebug:https://netbeans.org/kb/docs/php/debugging.html
我没有听说过这种情况发生的特定情况,我没有看到列出的任何Xdebug错误 - 这是否是他们在Xdebug中修复的错误?这个警告在最新版本中是否仍然有用?

当尝试在eclipse的表达式监视面板中扩展数组时,只会扩展前0 ... 30个元素.其余的只是让展开按钮消失.有人遇到过这个问题并修好了吗?
这在杂乱的变量视图中不是问题,仅在Expression观察视图中.我的解决方法是观察数组切片,这非常繁琐.
我在单元测试期间使用Xdebug获取一些覆盖数据,但它花费了大量时间(和内存).
有没有办法在不使用Xdebug的情况下获得覆盖?
xdebug ×10
php ×8
eclipse ×2
phpunit ×2
ubuntu ×2
build ×1
c++ ×1
eclipse-luna ×1
eclipse-pdt ×1
memory ×1
memory-leaks ×1
netbeans ×1
php-5.4 ×1
phpstorm ×1
unit-testing ×1
var-dump ×1