开发者

How do I debug errors that have no error message?

How do I debug errors that have no error message?

When loading a PHP page I am getting this error in Firefox.

The connection to the server was reset while the page was loading.

It gives no indication as to why other than it appears to be Apache crashing.

Apache error logs shows:

[Wed Nov 03 10:23:04 2010] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Wed Nov 03 10:23:06 2010] [notice] Digest: generating secret for digest authentication ...
[Wed Nov 03 10:23:06 2010] [notice] Digest: done
[Wed Nov 03 10:23:06 2010] [notice] Apache/2.2.14 (Win32) DAV/2 mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Wed Nov 03 10:23:06 2010] [notice] Server built: Nov 11 2009 14:29:03
[Wed Nov 03 10:23:06 2010] [notice] Parent: Created child process 5100
[Wed Nov 03 10:23:07 2010] [notice] Digest: generating secret for digest authentication ...
[Wed Nov 03 10:23:07 2010] [notice] Digest: done
[Wed Nov 03 10:23:07 2010] [notice] Child 5100: Child process is running
[Wed Nov 03 10:23:07 2010] [notice] Child 5100: Acquired the start mutex.
[Wed Nov 03 10:23:07 2010] [notice] Child 5100: Starting 150 worker threads.
[Wed Nov 03 10:23:07 2010] [notice] Child 5100: Starting thread to listen on port 80.
[Wed Nov 03 10:23:07 2010] [notice] Child 5100: Starting thread to listen on port 80.

I tried searching the 3221225477 code but found nothing that worked.

Also the Windows Event Viewer shows this:

Faulting application name: httpd.exe, version: 2.2.14.0, time stamp: 0x4aeb9704
Faulting module name: php5ts.dll, version: 5.3.1.0, time stamp: 0x4b06c41d
Exception code: 0xc0000005
Fault offset: 0x00082391
Faulting process id: 0x8f4
Faulting application start time: 0x01cb7b85fa74bf83
Faulting application path: C:\xampp\apache\bin\httpd.exe
Faulting module path: C:\xampp\php\php5ts.dll
Report Id: 73996201-e779-11df-938f-e0cb4e5b154a

This is happening when I call:

return mysql_fetch_object($result, $class_name);

Its also happening on another page when I use $_SESSION

If I switch to using CGI instead of the php5ts.dll and php5apache2_2.dll I get:

Premature end of script headers: php-cgi.exe

Its is only happening for some pages. Others work fine.

  • No PHP errors or exceptions occur. Error reporting is set to E_ALL & ~E_NOTICE & ~E_DEPRECATED. display_errors is on.
  • Timeout is set to 60 seconds, the error page is returned in about 10 seconds.
  • The memory usage gets about 16MB, the maximum limit is 256MB.
  • PHP 5.3.1, Windows 7 64bit.

So does anyone know how to effect开发者_高级运维ively debug this error?


Well, you can start by reading "Generating a Backtrace" and searching for registered PHP bug reports similar to you, and submitting a bug if you've really found none. If you are really interested, you can inspect the PHP Source and propose a patch.


Looks like you are experiencing a bug in PHP, leading to a crash. Try to upgrade to the latest nightly build (http://snaps.php.net/). If that doesn't help, try to get a backtrace and submit a bug on bugs.php.net.


Seems that the script is taking a long time to execute so the browser is timing out. try using the php function set_time_limit to keep the script from dying.

set_time_limit(0); // no time limit


If apache is crashing it may be due to a mangled .htaccess. Is there any log entry before the error message/crash to indicate what Apache thought it was doing?


Upgrade your PHP.

(This is what I did, and now it seems to work, however my question still stands: How do I effectively debug issues like these?)


http://bugs.php.net/bugs-getting-valgrind-log.php

[edit2] http://en.wikipedia.org/wiki/Strace can also be handy to find the spot that takes you system down.

[edit] how did you monitor the memory usage?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜