dougm 00/04/14 18:38:46
Modified: lib/ModPerl Code.pm
src/modules/perl .cvsignore mod_perl.c mod_perl.h
modperl_interp.c
Log:
integrate with tracing
Revision Changes Path
1.4 +35 -2 modperl-2.0/lib/ModPerl/Code.pm
Index: Code.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Code.pm 2000/04/14 23:52:53 1.3
+++ Code.pm 2000/04/15 01:38:44 1.4
@@ -184,6 +184,38 @@
}
}
+my @trace = qw(d s h g c i);
+
+sub generate_trace {
+ my($self, $h_fh) = @_;
+
+ my $i = 1;
+
+ print $h_fh <<EOF;
+extern U32 MP_debug_level;
+
+#ifdef MP_TRACE
+#define MP_TRACE_a if (MP_debug_level) modperl_trace
+#else
+#define MP_TRACE_a if (0) modperl_trace
+#endif
+
+EOF
+
+ for my $type (@trace) {
+ my $define = "#define MP_TRACE_$type";
+
+ print $h_fh <<EOF;
+#ifdef MP_TRACE
+$define if (MP_debug_level & $i) modperl_trace
+#else
+$define if (0) modperl_trace
+#endif
+EOF
+ $i += $i;
+ }
+}
+
sub ins_underscore {
$_[0] =~ s/([a-z])([A-Z])/$1_$2/g;
}
@@ -233,14 +265,15 @@
generate_handler_directives => {h => 'modperl_directives.h',
c => 'modperl_directives.c'},
generate_flags => {h => 'modperl_flags.h'},
+ generate_trace => {h => 'modperl_trace.h'},
);
my @g_c_names = map { "modperl_$_" } qw(hooks directives);
-my @c_names = (qw(mod_perl modperl_interp), @g_c_names);
+my @c_names = (qw(mod_perl modperl_interp modperl_log), @g_c_names);
sub c_files { map { "$_.c" } @c_names }
sub o_files { map { "$_.o" } @c_names }
-my @g_h_names = map { "modperl_$_" } qw(hooks directives flags);
+my @g_h_names = map { "modperl_$_" } qw(hooks directives flags trace);
sub clean_files {
(map { "$_.c" } @g_c_names), (map { "$_.h" } @g_h_names);
1.2 +1 -0 modperl-2.0/src/modules/perl/.cvsignore
Index: .cvsignore
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore 2000/04/14 23:29:12 1.1
+++ .cvsignore 2000/04/15 01:38:45 1.2
@@ -3,4 +3,5 @@
modperl_flags.h
modperl_directives.h
modperl_directives.c
+modperl_trace.h
1.3 +1 -0 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mod_perl.c 2000/04/14 23:52:54 1.2
+++ mod_perl.c 2000/04/15 01:38:45 1.3
@@ -29,6 +29,7 @@
void modperl_init(ap_pool_t *pconf, ap_pool_t *plog,
ap_pool_t *ptemp, server_rec *s)
{
+ modperl_trace_level_set("all"); /* XXX: all for now */
modperl_startup(s, pconf);
}
1.3 +1 -0 modperl-2.0/src/modules/perl/mod_perl.h
Index: mod_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mod_perl.h 2000/04/14 23:52:54 1.2
+++ mod_perl.h 2000/04/15 01:38:45 1.3
@@ -28,6 +28,7 @@
#include "modperl_config.h"
#include "modperl_callback.h"
#include "modperl_interp.h"
+#include "modperl_log.h"
#include "modperl_directives.h"
1.2 +21 -23 modperl-2.0/src/modules/perl/modperl_interp.c
Index: modperl_interp.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- modperl_interp.c 2000/04/14 23:51:58 1.1
+++ modperl_interp.c 2000/04/15 01:38:45 1.2
@@ -15,8 +15,7 @@
interp->mip_lock = parent->mip_lock;
}
- fprintf(stderr, "modperl_interp_new: 0x%lx\n",
- (unsigned long)interp);
+ MP_TRACE_i(MP_FUNC, "0x%lx\n", (unsigned long)interp);
return interp;
}
@@ -33,7 +32,7 @@
* need to lock the interpreter during callbacks
* unless mpm is prefork
*/
- fprintf(stderr, "modperl_interp_get: no pool, returning parent\n");
+ MP_TRACE_i(MP_FUNC, "no pool, returning parent\n");
return mip->parent;
}
@@ -41,25 +40,25 @@
head = mip->head;
- fprintf(stderr, "modperl_interp_get: head == 0x%lx, parent == 0x%lx\n",
- (unsigned long)head, (unsigned long)mip->parent);
+ MP_TRACE_i(MP_FUNC, "head == 0x%lx, parent == 0x%lx\n",
+ (unsigned long)head, (unsigned long)mip->parent);
while (head) {
if (!MpInterpIN_USE(head)) {
interp = head;
- fprintf(stderr, "modperl_interp_get: selected 0x%lx\n",
- (unsigned long)interp);
+ MP_TRACE_i(MP_FUNC, "selected 0x%lx\n",
+ (unsigned long)interp);
#ifdef _PTHREAD_H
- fprintf(stderr, "pthread_self == 0x%lx\n",
- (unsigned long)pthread_self());
+ MP_TRACE_i(MP_FUNC, "pthread_self == 0x%lx\n",
+ (unsigned long)pthread_self());
#endif
MpInterpIN_USE_On(interp);
MpInterpPUTBACK_On(interp);
break;
}
else {
- fprintf(stderr, "modperl_interp_get: 0x%lx in use\n",
- (unsigned long)head);
+ MP_TRACE_i(MP_FUNC, "0x%lx in use\n",
+ (unsigned long)head);
head = head->next;
}
}
@@ -85,12 +84,11 @@
while (mip->head) {
dTHXa(mip->head->perl);
- fprintf(stderr, "modperl_interp_pool_destroy: head == 0x%lx",
- (unsigned long)mip->head);
+ MP_TRACE_i(MP_FUNC, "head == 0x%lx\n",
+ (unsigned long)mip->head);
if (MpInterpIN_USE(mip->head)) {
- fprintf(stderr, " *error - still in use!*");
+ MP_TRACE_i(MP_FUNC, "*error - still in use!*\n");
}
- fprintf(stderr, "\n");
PL_perl_destruct_level = 2;
perl_destruct(mip->head->perl);
@@ -100,8 +98,8 @@
mip->head = mip->head->next;
}
- fprintf(stderr, "modperl_interp_pool_destroy: parent == 0x%lx\n",
- (unsigned long)mip->parent);
+ MP_TRACE_i(MP_FUNC, "parent == 0x%lx\n",
+ (unsigned long)mip->parent);
perl_destruct(mip->parent->perl);
perl_free(mip->parent->perl);
@@ -149,10 +147,10 @@
}
#endif
- fprintf(stderr, "modperl_interp_pool_init: parent == 0x%lx "
- "start=%d, min_spare=%d, max_spare=%d\n",
- (unsigned long)mip->parent,
- mip->start, mip->min_spare, mip->max_spare);
+ MP_TRACE_i(MP_FUNC, "parent == 0x%lx "
+ "start=%d, min_spare=%d, max_spare=%d\n",
+ (unsigned long)mip->parent,
+ mip->start, mip->min_spare, mip->max_spare);
ap_register_cleanup(p, (void*)mip,
modperl_interp_pool_destroy, ap_null_cleanup);
@@ -169,8 +167,8 @@
MpInterpIN_USE_Off(interp);
- fprintf(stderr, "modperl_interp_unselect: 0x%lx\n",
- (unsigned long)interp);
+ MP_TRACE_i(MP_FUNC, "0x%lx now available\n",
+ (unsigned long)interp);
ap_unlock(interp->mip_lock);