J'ai été impliqué dans le développement d'extensions PHP il y a quelque temps et j'avais besoin de déboguer le code source PHP. Cependant, la plupart des tutoriels sur Internet sont des tutoriels de débogage sous LINUX. Il existe très peu de tutoriels sur les systèmes WINDOWS et le processus est. seulement expliqué grossièrement. J'ai donc décidé d'essayer d'établir un environnement de débogage sous WINDOWS. Après tout, les principes sont les mêmes :).
1. Préparation
Ce qui suit est la configuration sur ma machine de développement, qui peut être cohérente avec la mienne pour réduire les erreurs supplémentaires en raison des versions des outils. La probabilité de problèmes.
1.Outil d'édition et de débogage du code source de Visual Code (Apprentissage recommandé : Tutoriel d'introduction à vscode)
2.Visual Studio Community2017 (VS apporte généralement tout le nécessaire au développement sous WIN, après tout, le seau familial de l'univers...)
La zone marquée en rouge doit être installée
3.Code source PHP7 (vous pouvez également choisir de l'extraire de github)
Vous pouvez choisir une version packagée du code source à volonté
4.PHP7- SDK
Ma machine de développement est en 64 bits Parce que je compile PHP7, j'ai choisi le deps-7.1-vc14-x64 64 bits (paquet de bibliothèque de dépendances étendue) et j'ai construit. Dossier php-sdk-binary-tools, décompressez php-sdk-binary-tools-xxx.zip dans ce dossier, créez le dossier deps-vc14-x64 et décompressez également deps-7.1-vc14-x64.7z dans ce dossier.
En même temps, ajoutez le chemin bin dans php-sdk-binary-tools à la variable système WINDOWS PATH. deps-7.1-vc14-x64 n'est pas utilisé dans cet article pour le moment, mais vous pouvez également le télécharger d'abord, car les bibliothèques et les fichiers d'en-tête qui compilent certaines des extensions qui l'accompagnent y sont inclus quand vous le souhaitez. pour compiler les extensions qui l'accompagnent, vous pouvez l'utiliser :).
2. Compilez le code source
Après avoir installé VS, exécutez x64 sous le dossier Visual Studio 2017 dans le menu Démarrer Natif Invite de commandes des outils pour VS 2017
Après l'exécution, entrez dans le répertoire du code source PHP7
1. Exécutez buildconf.bat pour générer le fichier de configuration WIN. (configure.js)
2. Vous pouvez exécuter configure.bat --help pour afficher les paramètres de compilation pris en charge
3. Exécutez configure.bat --disable-all --enable- cli. --enable-debug (afin de démontrer une compilation simple, vous pouvez ajouter des paramètres par vous-même)
4. Exécutez la commande nmake pour démarrer la compilation
Avec la configuration de la machine locale, le le fichier exécutable après la compilation se trouve dans la source Sous x64/Debug_TS dans le répertoire de code, vous pouvez vous préparer à démarrer le débogage plus tard.
3. Utilisez VSCODE pour déboguer
Il existe deux méthodes de débogage, l'une est le débogage de processus supplémentaire et l'autre exécute le débogage de démarrage. Les deux méthodes seront présentées. Commençons par présenter le débogage au démarrage.
Créez d'abord un fichier de code source php pour le test. Je l'ai créé dans x64/Debug_TS dans le répertoire du code source.
Puis sélectionnez le menu Débogage-> Ouvrir la configuration, et sélectionnez C++ (Windows)
Modifiez enfin le fichier de configuration comme suit
Nous avons déjà compilé le cli de PHP SAPI. Nous ouvrons le fichier source sapi/cli/php_cli.c, localisons la fonction principale à la ligne 1197 et y mettons un point d'arrêt.
Ensuite, nous pouvons accéder au panneau de configuration DEBUG de VS pour exécuter le débogage.
Vous verrez alors le point d'arrêt atteint.
La configuration de débogage du processus ci-jointe est également similaire. Nous cliquons sur l'option de menu Debug-> pour ouvrir la configuration et sélectionnons Ajouter une configuration. Sélectionnez C/C++ (Windows) Attacher dans la fenêtre contextuelle. liste de sélection
Le fichier de configuration final est le suivant :
Nous utilisons d'abord PHP -S pour démarrer un serveur intégré (ce php doit être le fichier php.exe que vous avez compilé et généré) pour faciliter la démonstration du débogage de processus supplémentaire. L'emplacement que j'ai commencé est le test. nous avons créé auparavant. Le répertoire où se trouve le fichier php.
L'effet d'accès est le suivant :
Démarrez le débogage de la même manière, sélectionnez (Windows) Attacher dans le panneau de débogage de VSCODE à courir.
Sélectionnez ensuite le processus PHP dans la liste contextuelle des processus et commencez à entrer dans l'état de débogage.
Nous utilisons la fonction array_push dans test.php. Cette fois, nous allons au point d'arrêt d'implémentation de cette fonction, ouvrons ext/standard/array.c, localisons la ligne 2540 et définissons un point d'arrêt.
Ensuite, visitez http://127.0.0.1:8080/test.php dans le navigateur pour déclencher le point d'arrêt.
4. Enfin
La méthode de débogage de cet article peut également être utilisée comme méthode de débogage pour le développement étendu. Bien sûr, la même idée de configuration également. s'applique à Universe IDE Visual Studio, mon idée de configurer VSCODE pour déboguer le code source PHP sous WINDOWS est également applicable à d'autres plateformes (Mac/Linux...). Si vous souhaitez déboguer le code source PHP dans Visual Studio, il est préférable d'utiliser cet article comme idée et d'essayer d'y réfléchir vous-même~
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!