| 30 | | === Checking gcc/glibc Version === |
| 31 | | {{{ |
| 32 | | #!ShellExample |
| 33 | | $ gcc -v |
| 34 | | Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/specs |
| 35 | | Configured with: ............... |
| 36 | | Thread model: posix |
| 37 | | gcc version 3.4.5 (Gentoo 3.4.5-r1, ssp-3.4.5-1.0, pie-8.7.9) |
| 38 | | }}} |
| 39 | | |
| 40 | | === Checking PHP Version === |
| 41 | | {{{ |
| 42 | | #!ShellExample |
| 43 | | $ php -v |
| 44 | | PHP 5.2.0-dev (cli) (built: May 8 2006 18:26:52) (DEBUG) |
| 45 | | Copyright (c) 1997-2006 The PHP Group |
| 46 | | Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies |
| 47 | | gentoo ~/src/xcache/trunk/build |
| 48 | | $ php-cgi -v |
| 49 | | PHP 4.4.3-dev (cgi-fcgi) (built: Mar 10 2006 18:46:02) |
| 50 | | Copyright (c) 1997-2006 The PHP Group |
| 51 | | Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies |
| 52 | | with XCache v1.0, Copyright (c) 2005-2006, by mOo |
| 53 | | }}} |
| 54 | | are you sure which one you use in webserver? check |
| 55 | | {{{ |
| 56 | | #!php |
| 57 | | <?php phpinfo(); ?> |
| 58 | | }}} |
| 59 | | |
| 60 | | === Generating a Backtrace === |
| 61 | | |
| 62 | | ==== If you don't have a core file yet ==== |
| 63 | | Read [http://bugs.php.net/bugs-generating-backtrace.php generating a Backtrace] on php.net. |
| 64 | | * config xcache.coredump_directory in /etc/php.ini |
| 65 | | * Ensure that the xcache.coredump_directory has write permissions for the user who's running PHP. |
| 66 | | * Remove any limits you may have on core dump size from your shell: |
| 67 | | * tcsh: unlimit coredumpsize |
| 68 | | * bash/sh: ulimit -c unlimited |
| 69 | | * Cause PHP to crash: |
| 70 | | * PHP CGI: Simply run php with the script that crashes it |
| 71 | | * PHP FastCGI: Simply setup normal webserver-fastcgi configuration, and access the script that crashes PHP |
| 72 | | * PHP As Apache Module: Run httpd -X, and access the script that crashes PHP |
| 73 | | ==== Once you have the core file ==== |
| 74 | | check where the coredump is |
| 75 | | {{{ |
| 76 | | #!ShellExample |
| 77 | | $ grep xcache.coredump_directory /etc/php.ini |
| 78 | | xcache.coredump_directory = "/tmp/" |
| 79 | | $ ls /tmp/core |
| 80 | | /tmp/core |
| 81 | | }}} |
| 82 | | ok, it's there |
| 83 | | |
| 84 | | * PHP as CGI/FastCGI: Run gdb with the path to the PHP or PHP-enabled httpd binary, and path to the core file, for example: |
| 85 | | {{{ |
| 86 | | #!ShellExample |
| 87 | | $ gdb /usr/local/bin/php-cgi-fcgi /tmp/core |
| 88 | | ........ |
| 89 | | (gdb) bt |
| 90 | | (gdb) source ~/src/php5/.gdbinit |
| 91 | | (gdb) dump_bt |
| 92 | | }}} |
| 93 | | |
| 94 | | * PHP As Webserver Module: Run gdb with the path to the PHP or PHP-enabled httpd binary, and path to the core file, for example: |
| 95 | | {{{ |
| 96 | | #!ShellExample |
| 97 | | $ gdb /usr/local/apache/sbin/httpd /tmp/core |
| 98 | | ........ |
| 99 | | (gdb) bt |
| 100 | | (gdb) source ~/src/php5/.gdbinit |
| 101 | | (gdb) dump_bt |
| 102 | | }}} |
| 103 | | |
| 104 | | === Filing A Bug === |
| 105 | | File bug [/xcache/newticket here]. We need as much information as possible. It will greatly helps us tracing it down. |
| 106 | | |
| 107 | | === Submiting A Patch === |
| 108 | | If you've managed to write a patch, you may attach it at [/xcache/newticket here] too. It would helps us a lot if you generate the bug with: |
| 109 | | {{{ |
| 110 | | #!ShellExample |
| 111 | | ~/src/xcache/ $ svn di > xcache-xxx.patch |
| 112 | | (or) |
| 113 | | ~/src/ $ diff -u xcache-modified/ xcache-orig/ > xcache-xxx.patch |
| 114 | | }}} |
| 115 | | and you should still tell us what the bug/problem is as in normal bug report, not just the patch. |