You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Stas Bekman <st...@stason.org> on 2003/09/21 05:30:58 UTC

[mp2 patch] modperl_apr_table_dump

I'm debugging/fixing some env unsetting issues and found this function to be 
handy, currently it's on if MOD_PERL_TRACE/PerlTrace is set to some non-false 
value.
First I'm not sure where to put it, modperl_util.c seems ok, but it's really 
for non-debug functions, may be we need to start modperl_debug.c, move all the 
debug helper functions there and enable them only if mp is built with 
MP_MAINTAINER=1?

On the other hand, do you think it could be handy in the Perl API, as part of 
APR::Table? Sure, there are the _do functions to traverse the table, but being 
able to just dump contents at once would be useful too. May be something to 
think about for later, since it can't be used in the current form (as in the 
patch).

Index: src/modules/perl/modperl_util.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.c,v
retrieving revision 1.53
diff -u -r1.53 modperl_util.c
--- src/modules/perl/modperl_util.c     18 Sep 2003 07:44:24 -0000      1.53
+++ src/modules/perl/modperl_util.c     21 Sep 2003 03:23:30 -0000
@@ -734,3 +734,24 @@

      return newRV_noinc(sv);
  }
+
+#ifdef MP_TRACE
+/* XXX: internal debug function */
+/* any non-false value for MOD_PERL_TRACE/PerlTrace enables this function */
+void modperl_apr_table_dump(pTHX_ apr_table_t *table, char *name)
+{
+    int i;
+    const apr_array_header_t *array;
+    apr_table_entry_t *elts;
+
+    array = apr_table_elts(table);
+    elts  = (apr_table_entry_t *)array->elts;
+    modperl_trace(MP_FUNC, "Contents of table %s", name);
+    for (i = 0; i < array->nelts; i++) {
+        if (!elts[i].key || !elts[i].val) {
+            continue;
+        }
+        modperl_trace(MP_FUNC, "%s => %s", elts[i].key, elts[i].val);
+    }
+}
+#endif
Index: src/modules/perl/modperl_util.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.h,v
retrieving revision 1.47
diff -u -r1.47 modperl_util.h
--- src/modules/perl/modperl_util.h     18 Sep 2003 07:44:24 -0000      1.47
+++ src/modules/perl/modperl_util.h     21 Sep 2003 03:23:30 -0000
@@ -155,4 +155,8 @@

  void modperl_clear_symtab(pTHX_ HV *symtab);

+#ifdef MP_TRACE
+void modperl_apr_table_dump(pTHX_ apr_table_t *table, char *name);
+#endif
+
  #endif /* MODPERL_UTIL_H */


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org