|
|
Line 111: |
Line 111: |
| WARNING: No principal to execute JS with: file /home/njn/moz/mi2/dom/src/jsurl/nsJSProtocolHandler.cpp, line 157 | | WARNING: No principal to execute JS with: file /home/njn/moz/mi2/dom/src/jsurl/nsJSProtocolHandler.cpp, line 157 |
|
| |
|
| When this command runs it tells DMD to do three things.
| | This command runs all the memory reporters and then invokes DMD analysis of the reports, which triggers this commentary: |
| | |
| * Run all the memory reporters. While this happens, DMD builds up some state recording which heap blocks have and have not been reported.
| |
| * Analyze the state and produce output.
| |
| * Clear the state.
| |
| | |
| Because of the third step, you can run <tt>DMDReportAndDump</tt> multiple times in a single session.
| |
| | |
| However, it's important that the memory reporters only run once between invocations of <tt>DMDReportAndDump</tt>, otherwise the state will be inaccurate. For example, if you view about:memory (which runs the memory reporters) and then invoke <tt>DMDReportAndDump</tt> (which runs them again before analyzing) you'll get _many_ reports about blocks being reported twice. Therefore, there is a second way to invoke DMD, which doesn't run the reporters:
| |
| | |
| javascript:DMDDump(<filename>)
| |
| | |
| When either command is invoked, you'll see some more commentary:
| |
|
| |
|
| DMD[20600] Dump 1 { | | DMD[20600] Dump 1 { |
Line 141: |
Line 129: |
|
| |
|
| Once that's finished printing you can look in <filename> for the output. | | Once that's finished printing you can look in <filename> for the output. |
| | |
| | You can run <tt>DMDReportAndDump</tt> multiple times in a single session. |
|
| |
|
| === Fennec === | | === Fennec === |