stas 2003/02/28 22:49:21
Modified: src/docs/2.0/devel/debug c.pod src/docs/2.0/devel/debug/code .debug-modperl-init .debug-modperl-register .debug-modperl-xs Log: add a note about preloading libpthread lib's symbols in order to be able to debug the worker mpm Revision Changes Path 1.5 +12 -2 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- c.pod 17 Feb 2003 03:28:06 -0000 1.4 +++ c.pod 1 Mar 2003 06:49:21 -0000 1.5 @@ -70,8 +70,8 @@ as early as possible in I<~/.gdbinit> file. With this setting in effect, you can load only the needed dynamic -libraries with I<sharedlibrary> command. Remember that in order to set -a breakpoint and step through the code inside a certain dynamic +libraries with I<sharedlibrary> gdb command. Remember that in order to +set a breakpoint and step through the code inside a certain dynamic library you have to load it first. For example consider this gdb commands file: @@ -167,6 +167,16 @@ in the beginning of this section and craft the startup script the way you need to avoid extra typing and mistakes when repeating the same debugging process again and again. + +Under threaded mpms (e.g. worker), it's possible that you won't be +able to debug unless you tell gdb to load the symbols from the threads +library. So for example if on your OS that library is called +I<libpthread.so> make sure to add: + + sharedlibrary libpthread + +somewhere after the program has started. See the L<Precooked gdb +Startup Scripts|/Precooked_gdb_Startup_Scripts> section for examples. Another important thing is that whenever you want to be able to see the source code for the code you are stepping through, the library or 1.3 +2 -0 modperl-docs/src/docs/2.0/devel/debug/code/.debug-modperl-init Index: .debug-modperl-init =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/2.0/devel/debug/code/.debug-modperl-init,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- .debug-modperl-init 31 Dec 2002 04:07:37 -0000 1.2 +++ .debug-modperl-init 1 Mar 2003 06:49:21 -0000 1.3 @@ -28,6 +28,8 @@ end define sharedap + # ADJUST: uncomment next line to debug threaded mpms + #sharedlibrary libpthread sharedlibrary apr sharedlibrary aprutil #sharedlibrary mod_ssl.so 1.3 +3 -0 modperl-docs/src/docs/2.0/devel/debug/code/.debug-modperl-register Index: .debug-modperl-register =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/2.0/devel/debug/code/.debug-modperl-register,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- .debug-modperl-register 31 Dec 2002 04:07:37 -0000 1.2 +++ .debug-modperl-register 1 Mar 2003 06:49:21 -0000 1.3 @@ -77,6 +77,9 @@ #b modperl_cmd_load_module #modperl_config_apply_PerlModule +# ADJUST: uncomment next line to debug threaded mpms +#sharedlibrary libpthread + # ADJUST: uncomment if you need to step through the code in apr libs #sharedap 1.2 +2 -0 modperl-docs/src/docs/2.0/devel/debug/code/.debug-modperl-xs Index: .debug-modperl-xs =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/2.0/devel/debug/code/.debug-modperl-xs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- .debug-modperl-xs 9 Dec 2002 16:29:57 -0000 1.1 +++ .debug-modperl-xs 1 Mar 2003 06:49:21 -0000 1.2 @@ -26,6 +26,8 @@ end define sharedap + # ADJUST: uncomment next line to debug threaded mpms + #sharedlibrary libpthread sharedlibrary apr sharedlibrary aprutil #sharedlibrary mod_ssl.so