Как проанализировать core файл?

  • Автор темы Pups The RAPtor
  • Дата начала

Pups The RAPtor

Guest
Как проанализировать core файл?

на предмет того чем вызвано падение ...

Иногда скрипт падает при невыясненых пока обстоятельствах, при этом формируется файл с названием core, размером порядка 250 мб (так и должно быть или нет?).

В саппорте говорят чтобы я попробовал проанализировать этот файл. Как это можно сделать?

Поиском смотрел, может не туда :)?

Спасибо.
 

Profic

just Profic (PHP5 BetaTeam)
черезо что запускается скрипт? cgi/cli/mod_php?
в общем случае в юниксовском шеле
$dbg /path/to/exe /path/to/core
>where
1) dbg может оказаться и gdb
2) exe для mod_php - httpd
3) exe для cgi/cli php
 

Pups The RAPtor

Guest
Автор оригинала: Profic
черезо что запускается скрипт? cgi/cli/mod_php?
в общем случае в юниксовском шеле
$dbg /path/to/exe /path/to/core
>where
1) dbg может оказаться и gdb
2) exe для mod_php - httpd
3) exe для cgi/cli php
Через cgi. Ок, пойду пробовать ...

Так файл на 250 метров это нормально?
 

Pups The RAPtor

Guest
Автор оригинала: BigHarry
Наверно - сколько в тачке мозгов - стока и дампанулось...
Ок, пойду ждать падения :). Дождусь - вернусь обратно.
 

Profic

just Profic (PHP5 BetaTeam)
Да еще в догонку еще и
>bt

Про 25 метров
В эти 250 метров входит вся память занимаемая приложением в момент падения, поэтому файл в 250 метров немного странно (хотя зависит от нагрузки и других модулей)
Я мну как-то abiword сделал дамп на 5 гигов, это я так memory leak нашел в нем :)
 

Pups The RAPtor

Guest
Итак, обратно к баранам :)

Вот что дал анализ файла

GNU gdb Red Hat Linux (5.2-2)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
Core was generated by `/usr/bin/php index.php'.
Program terminated with signal 11, Segmentation fault.
#0 0x40534cfc in ?? ()
(gdb) Hangup detected on fd 0
error detected on stdin

И что это значит, подскажите пожалуйста?
 

Profic

just Profic (PHP5 BetaTeam)
1) Кажется php скопилен без дебужных символов
2) А где вывод bt?
 

Pups The RAPtor

Guest
1. Чего нехватает? --with-debug ?

'./configure' '--prefix=/usr' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-curl' '--with-swf=/usr/local/flash' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-mcrypt' '--with-mhash' '--with-ming=../ming-0.2a' '--enable-magic-quotes' '--with-mysql' '--with-openssl' '--enable-discard-path' '--with-pear' '--with-pgsql=/usr' '--enable-safe-mode' '--enable-sockets' '--enable-track-vars' '--with-ttf' '--with-freetype-dir=/usr' '--enable-gd-native-ttf' '--enable-versioning' '--with-xmlrpc' '--with-zlib'

2. А что такое bt и как его вывести?
 

Profic

just Profic (PHP5 BetaTeam)
пока погоди пересобирать :)
сказал же
$gdb /path/to/exe /path/to/core
>bt
"bt" это комманда gdb и вводится она у него в ЕГО ЖЕ коммандной строке.
 

Pups The RAPtor

Guest
А, понятно :).

Но пока откладываем до очередного раза, у хостера такие файлы чистятся автоматически и моего опытного экземпляра уже нет.

Надо ждать следующего раза.
 

clevel

Новичок
аналогичная проблема: постояннов вылетают чайлды апача. Вот чего выдает bt gdb:
0x287b709c in ?? ()
#1 0x081978e7 in clean_parent_exit ()
#2 0x0819a430 in standalone_main ()
#3 0x0819a962 in main ()
#4 0x0806f1e5 in _start ()
freebsd 5.0-RELEASE,
Apache/1.3.27 (Unix) mod_fastcgi/2.2.12 PHP/4.3.6 mod_ssl/2.8.12 OpenSSL/0.9.7d rus/PL30.16

'./configure' '--with-apache=../apache' '--with-mod_charset' '--disable-debug' '--enable-calendar' '--enable-inline-otimization' '--with-zlib' '--with-gd=/usr/local' '--with-jpeg-dir=/usr/local/lib' '--with-png-dir=/usr/local/lib' '--with-xpm-dir=/usr/lib' '--with-freetype-dir=/usr/local' '--with-zlib-dir=/usr/lib' '--with-freetype-dir=/usr/local/freetype2' '--enable-wddx' '--with-curl' '--with-expat' '--enable-trans-sid' '--with-iconv' '--with-openssl=/usr/local' '--enable-dbase' '--with-mysql=/usr/local'

mod_fastcgi, mod_php4, mod_ssl, mod_setenvif, mod_so, mod_auth, mod_access, mod_rewrite, mod_alias, mod_userdir, mod_actions, mod_imap, mod_asis, mod_cgi, mod_dir, mod_autoindex, mod_include, mod_status, mod_negotiation, mod_mime, mod_log_referer, mod_log_config, mod_env, mod_vhost_alias, mod_charset, http_core

PHP Version 4.3.6
Turck MMCache 2.4.6

-~{}~ 02.07.04 23:41:

Core was generated by `httpd'.
Program terminated with signal 11, Segmentation fault.
 

Profic

just Profic (PHP5 BetaTeam)
clevel
И что мы должны гадать, на чем упал апач (вернее даже видимо php)?
Имя то процедуры не обозначено, значит, что-то было собрано без дебуга. А вот что хрен его знает, но корее всего php :)
 
Сверху