utilities/ovs-kill.8.in \
utilities/ovs-ofctl.8.in \
utilities/ovs-openflowd.8.in \
+ utilities/ovs-parse-leaks.8 \
utilities/ovs-parse-leaks.in \
utilities/ovs-pki-cgi.in \
utilities/ovs-pki.8.in \
utilities/ovs-kill.8 \
utilities/ovs-ofctl.8 \
utilities/ovs-openflowd.8 \
+ utilities/ovs-parse-leaks.8 \
utilities/ovs-pki.8 \
utilities/ovs-vsctl.8
--- /dev/null
+.TH ovs\-parse\-leaks 8 "August 2010" "Open vSwitch" "Open vSwitch Manual"
+.
+.SH NAME
+Bovs\-parse\-leaks \- parses OVS leak checker log files
+.
+.SH SYNOPSIS
+\fBovs\-parse\-leaks\fR [\fIbinary\fR] \fB< \fIlog\fR
+.
+.SH DESCRIPTION
+Many Open vSwitch daemons accept a \fB\-\-check\-leaks\fR option that
+writes information about memory allocation and deallocation to a log
+file. \fBovs\-parse\-leaks\fR parses log files produced by this
+option and prints a summary of the results. The most interesting part
+of the output is a list of memory blocks that were allocated but not
+freed, which Open vSwitch developers can use to find and fix memory
+leaks.
+.PP
+The log file must be supplied on standard input. The binary that
+produced the output should be supplied as the sole non-option
+argument. For best results, the binary should have debug symbols.
+.
+.SH OPTIONS
+.TP
+\fB\-\-help\fR
+Prints a help usage message and exits.
+.SH BUGS
+The output can be hard to interpret, especially for a daemon that does
+not exit in normal operation.
+.PP
+\fBovs\-parse\-leaks\fR usually incorrectly reports one or more "bad
+frees of not-allocated address" errors at the beginning of output.
+These reflect frees of data that were allocated before the leak
+checker was turned on during program initialization.
#! @PERL@
-# Copyright (c) 2009 Nicira Networks.
+# Copyright (c) 2009, 2010 Nicira Networks.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
our ($binary);
our ($a2l) = search_path("addr2line");
-my ($no_syms) = "symbols will not be translated";
+my ($no_syms) = "symbols will not be translated (use --help for help)";
if (!@ARGV) {
print "no binary specified; $no_syms\n";
} elsif (! -e $ARGV[0]) {