Browse Source

r16874@catbus: nickm | 2007-11-30 13:11:09 -0500
When using dmalloc, dump the top ten memory consumers to the _DMALLOC_ logfile when we get a SIGUSR1. Hint: it is not what you would think.


svn:r12613

Nick Mathewson 16 years ago
parent
commit
ac82d81538
2 changed files with 10 additions and 0 deletions
  1. 4 0
      ChangeLog
  2. 6 0
      src/common/util.c

+ 4 - 0
ChangeLog

@@ -18,6 +18,10 @@ Changes in version 0.2.0.13-alpha - 2007-11-??
       to build a descriptor with no intro points (and it would have
       crashed if we had tried to parse one). Bugfix on 0.2.0.x; patch
       by Karsten Loesing.
+    - Fix building with dmalloc 5.5.2 with glibc.
+
+  o Minor features:
+    - On USR1, when dmalloc is in use, log the top 10 memory consumers. 
 
 
 Changes in version 0.2.0.12-alpha - 2007-11-16

+ 6 - 0
src/common/util.c

@@ -76,8 +76,10 @@ const char util_c_id[] = "$Id$";
  * Memory management
  * ===== */
 #ifdef USE_DMALLOC
+ #undef strndup
  #include <dmalloc.h>
  #define DMALLOC_FN_ARGS , file, line
+ #define dmalloc_strdup(file, line, string, xalloc_b) dmalloc_strndup(file, line, (string), -1, xalloc_b)
 #else
  #define dmalloc_strdup(file, line, string, xalloc_b) strdup(string)
 
@@ -228,6 +230,10 @@ tor_log_mallinfo(int severity)
 #else
   (void)severity;
 #endif
+#ifdef USE_DMALLOC
+  dmalloc_log_stats();
+  // too wordy dmalloc_log_unfreed();
+#endif
 }
 
 /* =====