Home > Article > Development Tools > Using VSCODE to debug PHP7 source code under WINDOWS
I was involved in PHP extension development some time ago and had debugging requirements for PHP source code. However, most of the tutorials on the Internet are debugging tutorials under LINUX. There are very few tutorials on WINDOWS systems and the process is only roughly explained. So I decided to try to establish a debugging environment under WINDOWS. After all, the principles are the same :).
1. Preparation
The following is the configuration on my development machine, which can be consistent with mine to reduce additional errors due to tool versions The probability of problems.
1.Visual Code source code editing and debugging tool (VS usually brings all the things needed for development under WIN, after all, the universe family bucket...)
The red marked area must be installed3.PHP7 source code (you can also choose to pull it from github)
You can choose a packaged version of the source code
4.PHP7- SDKMy development machine is 64-bit. Because I am compiling PHP7, I chose the 64-bit deps-7.1-vc14-x64 (extended dependency library package) and created php-sdk-binary-tools. folder, unzip php-sdk-binary-tools-xxx.zip to this folder, create the deps-vc14-x64 folder, and also unzip deps-7.1-vc14-x64.7z to this folder. At the same time, add the bin path in php-sdk-binary-tools to the WINDOWS system variable PATH. deps-7.1-vc14-x64 is not used in this article for the time being, but you can also download it first, because the libraries and header files that compile some of the extensions that come with it are included in it. When you want to compile the extensions that come with it, you can Use it :).
2. Compile the source codeAfter installing VS, run x64 under the Visual Studio 2017 folder in the start menu Native Tools Command Prompt for VS 2017
After running, enter the PHP7 source code directory
1. Execute buildconf.bat to generate WIN configure file (configure.js)
2. You can run configure.bat --help to view the supported compilation parameters
3. Execute configure.bat --disable-all --enable- cli --enable-debug (in order to demonstrate simple compilation, you can add parameters by yourself)
4. Execute the nmake command to start compilationWith the configuration of the local machine, the executable file after compilation is in the source Under x64/Debug_TS in the code directory, you can prepare to start debugging later.3. Use VSCODE to debug
The debugging methods can be divided into two types, one is additional process debugging, and the other is running startup debugging. Both methods will be introduced. Let’s first introduce running startup debugging.First create a php source code file for testing. I created it in x64/Debug_TS in the source code directory.
Then select the menu Debug->Open Configuration and select C (Windows)
Finally modify the configuration file as follows
We have compiled the cli of PHP SAPI before. We open the sapi/cli/php_cli.c source file, locate the main function on line 1197, and put a breakpoint in it. Then we can go to the DEBUG control panel of VS to run debugging.You will then see the breakpoint hit.
The attached process debugging configuration is also similar. We click the menu option Debug->Open Configuration, and select Add Configuration. Select C/C (Windows) Attach
in the pop-up selection list. The final configuration file is as follows:We first use PHP -S to start a built-in server (this php must be the php.exe file you compiled and generated) to facilitate the demonstration of additional process debugging. The location I started is the test we created before. The directory where the php file is located.
The access effect is as follows:
#The way to start debugging is the same, select (Windows) Attach in the debugging panel of VSCODE to run.
#Then select the PHP process in the pop-up process list and start entering the debugging state.
We use the array_push function in test.php. This time we go to the implementation breakpoint of this function, open ext/standard/array.c, locate line 2540, and set a breakpoint.
Then visit http://127.0.0.1:8080/test.php in the browser to trigger the breakpoint.
4. Finally
The debugging method in this article can also be used as a debugging method for extended development. Of course, the same configuration idea also applies to Universe IDE Visual Studio , my idea of configuring VSCODE to debug PHP source code under WINDOWS is also applicable to other platforms (Mac/Linux...). If you are interested in debugging PHP source code in Visual Studio, it is better to use this article as an idea and try to think about it yourself~
The above is the detailed content of Using VSCODE to debug PHP7 source code under WINDOWS. For more information, please follow other related articles on the PHP Chinese website!