0%

vscode+xdebug调试php代码

记录如何利用vscode+xdebug调试php代码

环境搭建

本篇文章利用的是

1
vscode+phpstudy+xdebug

PHP7

具体步骤

配置phpstudy

首先要打开xdebug拓展

打开软件管理,找到对应的php版本点击设置

打开xdebug,设置监听端口为9003(9000端口会和nginx冲突)

然后访问phpstudy_pro\Extensions\php\php7.3.4nts,打开配置文件php.ini

拉到最下面,观察配置是否正确

1
2
3
4
5
6
7
8
9
10
11
12
13
[Xdebug]
zend_extension=D:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=On
xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.trace
xdebug.profiler_enable=On
xdebug.profiler_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.3.4nts.xdebug.profiler
xdebug.remote_enable=On
xdebug.remote_host=localhost
xdebug.remote_port=9003
xdebug.remote_handler=dbgp
xdebug.remote_autostart = on

注:这里最重要的就是xdebug.remote_autostart = onxdebug.remote_enable=On

配置vscode

要能进行调试,必须要有下面的拓展

下载好后,我们点击vscode右下角的设置,然后搜索php

编辑settings.json

1
2
3
4
5
6
{
"php.debug.executablePath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe",
"php.validate.executablePath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe",
"phpserver.phpConfigPath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.ini",
"phpserver.phpPath": "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe"
}

配置launch.json

点击左侧的调试图标,点击创建launch.json

当然选择的调试器是PHP

这里是需要选择文件夹才能创建,我选的是phpstudy_pro\WWW

创建好后要查看此文件的端口是否和我们phpstudy上监听的端口号一致(即php配置文件xdebug的端口号)

然后将Launch currently open script的端口号0改成9003

配置好后就可以进行调试

进行调试

我们在WWW下的index.php编写一个demo

1
2
3
4
5
6
<?php
$a=1;
$b=1;
$c=$a+$b;
echo $c;
?>

打上断点

F5或者直接点击调试

然后我们访问localhost/index.php,可以看到我们的代码成功动起来

一步步调试,可以在左侧看调试过程

PHP8

PHP8和7的xdebug配置文件名略有不同

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Xdebug]
zend_extension=D:/phpstudy_pro/Extensions/php/php8.0.2nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=On
xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.trace
xdebug.profiler_enable=On
xdebug.profiler_output_dir=D:/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.profiler
xdebug.remote_enable=On
xdebug.client_host=localhost
xdebug.client_port=9005
xdebug.remote_handler=dbgp
xdebug.remote_autostart =On
xdebug.mode=debug
xdebug.start_with_request = yes

总结

掌握调试是学习代码审计非常重要的一部分,网上有关如何利用vscode结合xdebug进行调试的文章也挺多的,不过还是值得记录一下,本人在重装phpstudy和vscode后重新配置调试环境,并且最终实现php代码的调试。当然也是给某人专门写的配置调试环境教程,希望能等到这一天。