2010-12-02 41 views
2

Je recevais occasionnellement l'erreur Seg Seg d'Apache, j'ai donc activé le core dump sur mes serveurs pour essayer de comprendre ce qui se passe. La nuit dernière, j'en ai eu un autre et j'essayais d'examiner la décharge principale pour savoir ce qui se passait. C'est vraiment un processus PHP, donc j'ai cherché sur Google comment les examiner spécifiquement pour PHP. J'ai téléchargé le fichier .gdbinit pour PHP 5.2 et je courais ce qui suit sur le fichier de vidage:Analyse du vidage du noyau Apache/PHP

$ gdb apache2 dumpfile 
[reading/loading symbols] 
(gdb) bt 
[...backtrace...] 
(gdb) source ~/.gdbinit 
(gdb) dump_bt executor_globals.current_execute_data 
Attempt to extract a component of a value that is not a structure. 

Je devrais obtenir un backtrace après dump_bt executor_globals.current_execute_data pour le script PHP qui a provoqué la faute de seg, mais je continue à obtenir la place Attempt to extract a component of a value that is not a structure. .

+0

pourrait être une incompatibilité de version du module/extension de – stillstanding

+0

Dump ici la version PHP. –

+0

@FractalizeR La version de PHP est 5.2.4 – JamesArmes

Répondre

1

À la première fois, j'ai eu le même problème avec vous. Exécutez à nouveau le bt et dump_bt commandes et il fonctionne:

(gdb) dump_bt executor_globals.current_execute_data 
Attempt to extract a component of a value that is not a structure. 

(gdb) bt 
#0 0x00002af8f874a5da in AppendImages() from /usr/lib64/libMagick.so.10 
#1 0x00002af8f84586ce in MagickAppendImages() from /usr/lib64/libWand.so.10 
#2 0x00002af8f81a3ad8 in zim_imagick_appendimages (ht=<value optimized out>, return_value=0x2af8f9ded108, 
    return_value_ptr=<value optimized out>, this_ptr=<value optimized out>, return_value_used=<value optimized out>) 
    at /var/tmp/imagick/imagick_class.c:8790 

(gdb) dump_bt executor_globals.current_execute_data 
[0xe8609940] appendimages() /var/www/html/xx/yy.php:803 
[0xe8605070] genCode() /var/www/html/xx/zz.php:127