Return-Path: Delivered-To: apmail-perl-modperl-cvs-archive@perl.apache.org Received: (qmail 48049 invoked by uid 500); 1 Mar 2003 07:06:50 -0000 Mailing-List: contact modperl-cvs-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@perl.apache.org Delivered-To: mailing list modperl-cvs@perl.apache.org Received: (qmail 48036 invoked by uid 500); 1 Mar 2003 07:06:50 -0000 Delivered-To: apmail-modperl-docs-cvs@apache.org Date: 1 Mar 2003 07:06:49 -0000 Message-ID: <20030301070649.36170.qmail@icarus.apache.org> From: stas@apache.org To: modperl-docs-cvs@apache.org Subject: cvs commit: modperl-docs/src/docs/2.0/devel/debug c.pod X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N stas 2003/02/28 23:06:48 Modified: src/docs/2.0/devel/debug c.pod Log: more various debug notes Revision Changes Path 1.6 +51 -0 modperl-docs/src/docs/2.0/devel/debug/c.pod Index: c.pod =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/2.0/devel/debug/c.pod,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- c.pod 1 Mar 2003 06:49:21 -0000 1.5 +++ c.pod 1 Mar 2003 07:06:48 -0000 1.6 @@ -735,6 +735,57 @@ from reaping it. So, you could hit the clients/threads limit if you segfault a lot. +=head1 Debugging Threaded MPMs + + +=head2 Useful Information from gdb Manual + +Debugging programs with multiple threads: +http://sources.redhat.com/gdb/current/onlinedocs/gdb_5.html#SEC25 + +Stopping and starting multi-thread programs: +http://sources.redhat.com/gdb/current/onlinedocs/gdb_6.html#SEC40 + +=head2 libpthread + +when using: + + set auto-solib-add 0 + +make sure to: + + sharedlibrary libpthread + +(or whatever the shared library is used on your OS) without which you +may have problems to debug the threaded mpm mod_perl. + + + +=head1 Defining and Using Custom gdb Macros + +GDB provides two ways to store sequences of commands for execution as +a unit: user-defined commands and command files. See: +http://sources.redhat.com/gdb/current/onlinedocs/gdb_21.html + +Apache 2.0 source comes with a nice pack of macros and can be found in +I. To use it issue: + + gdb> source /wherever/httpd-2.0/.gdbinit + +Now if for example you want to dump the contents of the bucket +brigade, you can do: + + gdb> dump_brigade my_brigade + +where C is the pointer to the bucket brigade that you want +to debug. + +mod_perl 1.0 has a similar file (I) mainly including +handy macros for dumping Perl datastructures, however it works only +with non-threaded Perls. But otherwise it's useful in debugging +mod_perl 2.0 as well. + + =head1 Expanding C Macros Perl, mod_perl and httpd C code makes an extensive use of C macros,