A common bug to diagnose with Emscripten is where a big game fails due to an out of memory error (OOM) somewhere during load time. By the time about:memory
is loaded in a new tab and you have clicked the "Measure" button to diagnose what's happened, the memory usage causing the spike has gone away, making temporary memory spikes difficult to diagnose. This article explains how to debug such problems.
Out-of-memory exceptions from JS
Setting memory.dump_reports_on_oom
in about:config
to true
will cause the browser to automatically write about:memory
dumps to a temp file printed to the Browser Console (note: not Web Console) when an OOM crash is encountered. For more information, see bug 969415.
Out-of-memory crashes
In some cases, running out of memory causes the browser to crash. Ideally, memory.dump_reports_on_oom
would generate an about:memory
dump, but it does not currently.
Firefox Android
On Firefox Android, an about:memory dump may be triggered from a connect desktop machine with the command:
adb shell am broadcast -a org.mozilla.gecko.MEMORY_DUMP
The location of the dump file will be printed to the Android log (viewed with adb logcat | grep GeckoConsole
) and can be retrieved via adb pull
. Note: replace "/storage/emulated/0/Download/
" in the reported file path with the device's download path (e.g. "/sdcard/download/
") when calling adb pull
.