[PHP]3.代码调试及Xdebug的配置使用

PHP代码审计

·代码调试

·Echo

最简单的输出数据调试方法,一般用来输出变量值或者不确定执行到哪个分支

 

·print_R, var_dump,debug_zval_dump

这个主要是输出变量的数据值,特别是数组和对象数据,一般我们在查看几口返回值或者不确定的变量,都可以使用这两个APIdebug_zval_dump输出结果和var_dump类似,唯一增加一个的值是refcount 记录一个变量被引用多少次

 

·debug_print_backtrace

Debug_print_backtace可以查看输入调用栈信息

 

·exit()

停止程序 无法运行后面代码

 TEST1.php

<?php
$var = 5;
If($var < 0){
//do something
Echo “1”;
}elseif($var > 0 && $var <5){
//do something
Echo “2”;
}elseif($var >= 5 && $var < 10){
//do something
Echo “3”;
}

Test2.php

<?php
$arr = array(
“key1” => true,
“key2” => “test”,
“key3” => 100,
“key4” => null,
);
Print_r($varr);
Var_dump($varr) //print_r / var_dump 显示的数据类型不一样
debug_zval_dump($varr);

·Xdebug安装介绍

Xdebug是一个开源的PHP程序调试工具

·配置

指定xdebug扩展文件的绝对路径

Zend_extension = E:\Local Test\php\php-5.4.45\ext\php_xdebug.dll

启动性能检测分析

Xdebug.profiler_enable =on

启动代码自动跟踪

Xdebug_auto_trace = on

允许收集传递给函数的参数变量

Xdebug.collect_params=on

允许收集函数调用的返回值

Xdebug.collect_return=on

指定堆栈跟踪文件的存放目录

Xdebug.trace=output_dir=E:\local test\tmp\xdebug

指定性能分析文件的存放目录

Xdebug.profiler_output_dir=E:\Local test\tmp\xdebug

链接和监听主机和端口的调试客户端

Xdebug.remote_enable = on

启动调试器协议dbgp

Xdebug.remote_handler = dbgp

客户端主机

Xdebug.remote_host = localhost

客户端的端口

Xdebug.remout_port = 9000

指定DBGP调试器处理程序

Xdebug.diekey = phpstrorm