mod_whatkilledus and mod_backtrace V2.01
I have a sinking feeling that this isn’t pertinent to a fairly large percentage of the world’s inhabitants, but it was a fair amount of hours spread over time and it’s finally done, so I’ll pretend otherwise.
mod_whatkilledus improvements
- The name of the log file can now be configured with the WKULogfile directive.
- On Windows: Add directive WKUDisableWindowsErrorBox to allow disabling the pop-up error handling dialog after a child process crash.
- On Windows: Handle exceptions in 64-bit builds.
- With Event MPM on Unix: When building with httpd 2.4.10 or later, properly track request processing across threads with the Event MPM. Previously, the wrong client and/or request might be logged as the trigger for a crash (with the Event MPM only). The change is not effective when building with httpd 2.4.9 or earlier.
mod_backtrace improvements
- Support libunwind on Linux, FreeBSD, and OS X. This provides better resolution of function names, so a raw address will be provided in lieu of the function name in fewer situations. (Add LIBUNWIND=yes to the make invocation.) OS X note: A libunwind build silently fails to capture a backtrace with 32-bit builds, so use the default mechanism with 32-bit builds on OS X.
- Filter out internal functions from backtraces so that only the caller’s stack frames are reported.
- Improve formatting of a backtrace for the error log field.
Windows binaries
64-bit binaries are now included for use with httpd 2.2 and 2.4 on Windows. (32-bit binaries are still included.)
Build improvements
- Support make APXS=/path/to/apxs for building with non-default install layouts.
- Support Clang on FreeBSD 10.
- Add -funwind-tables on ARM platform for better backtraces.
- mod_whatkilledus fails to build in a less mysterious way when using an httpd build that doesn’t have exception hooks enabled.