Leak Gauge is a tool that can be used to detect certain kinds of leaks in Gecko, including those involving documents, window objects, and docshells. It has two parts: instrumentation in Gecko that produces a log file, and a script to post-process the log file.
Getting a log file¶
To get a log file, run the browser with these settings:
NSPR_LOG_FILE=nspr.log # or any other filename of your choice
This overwrites any existing file named
nspr.log. The browser runs
with a negligible slowdown. For reliable results, exit the browser
before post-processing the log file.
Post-processing the log file¶
Post-process the log file with tools/leak-gauge/leak-gauge.pl
If there are no leaks, the output looks like this:
Results of processing log leak.log :
Leaked 0 out of 11 DOM Windows
Leaked 0 out of 44 documents
Leaked 0 out of 3 docshells
Leaked content nodes in 0 out of 0 documents
If there are leaks, the output looks like this:
Results of processing log leak2.log :
Leaked outer window 2c6e410 at address 2c6e410.
Leaked outer window 2c6ead0 at address 2c6ead0.
Leaked inner window 2c6ec80 (outer 2c6ead0) at address 2c6ec80.
Leaked 13 out of 15 DOM Windows
Leaked 35 out of 46 documents
Leaked 4 out of 4 docshells
Leaked content nodes in 42 out of 53 documents
If you find leaks, please file a bug report.