La solution à une erreur de segmentation en PHP : cochez d'abord "ulimit -a" puis définissez "ulimit -c unlimited" pour ne pas limiter la taille du fichier core puis utilisez gdb pour exécuter le programme et le fichier enregistré par l'erreur de segmentation ; précisez enfin que la taille du fichier principal est suffisante.
Les programmes C sous Linux provoquent souvent des erreurs de segment en raison d'erreurs d'accès à la mémoire et d'autres raisons. À ce stade, si la fonction de vidage de mémoire du système est activée, alors. L'image mémoire sera vidée sur le disque dur. Vous pouvez ensuite utiliser gdb pour analyser le fichier core et restaurer la situation de la pile lorsque l'erreur de segmentation du système s'est produite. Cela nous est très utile pour trouver les bogues du programme.
Utilisez ulimit -a pour afficher la taille limite du fichier principal du système ; utilisez ulimit -c [kbytes] pour définir la taille du fichier principal que le système permet de générer.
ulimit -c 0 ne génère pas de fichiers principaux
ulimit -c 100 définit le fichier principal maximum à 100k
ulimit -c unlimited ne limite pas la taille du fichier principal
Étapes :
1. Lorsqu'une erreur de segmentation se produit, nous vérifions ulimit -a (taille du fichier principal (blocs, -c) 0) et il n'y a pas de fichier,
2. Paramètres : ulimit -c unlimited ne limite pas la taille du fichier core
3. Exécutez le programme, et lorsqu'une erreur de segmentation se produit, elle sera automatiquement enregistrée dans le core (php -f WorkWithArray.php)
4. ls -al core.* Sous ce fichier (-rw------- 1 leconte leconte 139264 01-06 22:3 1 core.2065)
5. Utilisez gdb pour exécuter le programme et segmenter les fichiers enregistrés. (gdb ./test core.2065)
6. Mentionnera quelle ligne est fausse.
La taille du fichier principal par défaut de nombreux systèmes est 0. Nous pouvons spécifier la taille du fichier principal en ajoutant la commande ulimit -c au script de démarrage du shell /etc/bashrc ou ~/.bashrc pour garantir que le fichier principal peuvent être générés.
De plus, vous pouvez également définir le modèle de nom de fichier du fichier core dans /proc/sys/kernel/core_pattern Pour plus de détails, veuillez consulter le manuel officiel de core.
Introduction connexe :
La commande Linux ulimit est utilisée pour contrôler les ressources du programme shell.
ulimit est une commande intégrée du shell, qui peut être utilisée pour contrôler les ressources du programme d'exécution du shell.
Syntaxe
ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
Paramètres :
-a Afficher les paramètres actuels de limite de ressources.
-c
-d
-f
-H Définissez la limite stricte des ressources, qui est la limite fixée par l'administrateur.
-m
-n
-p
-s
-S Définir la limite flexible des ressources.
-t
-u
-v
Pour plus de connaissances connexes, veuillez visiter le Site Web PHP chinois !
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!