TPEGFX/Notes
From MozillaWiki
< TPEGFX
Crash
- offsite sharing - crash
- Reading crash report on soccorow (kevin)
- Find the correlation
- Understand crash reason, crash address
- A look into mini dump/symbols/crash report (vincent)
- how to load mini dump/symbols
- useful windbg/gdb/lldb commands
- (lldb) br com add 1 //executes commands when breakpoint was hit
- (windbg) dt !xul:nsfont
- (windbg) !analyze -v
- case study
- Reading crash report on soccorow (kevin)
Testing
- [pchang] run GTest subset
- ./mach gtest Layers.*
- GTEST_FILTER='Layers*' MOZ_RUN_GTEST=1 ./mach run --debug //use debugger to debug GTest
- [Michael Leu] - My workflow of building environments for reproducing bugs
- [vliu] run Talos
- run Talos with geckoProfile in local (take talos resize as example)
- a). After Bug 1371838 was landed, you can profile WRRender by geckoProfile. To do this in Talos, please do the following before everything starts.
- Add WRWorker,WRRenderBackend,Renderer to https://searchfox.org/mozilla-central/rev/7a8c667bdd2a4a32746c9862356e199627c0896d/testing/talos/talos/gecko_profile.py#39
- b). run ./mach buildSymbols to generate symbols into .zip file, says firefox-XXX.crashreporter-symbols-full.zip.
- c). run ./mach talos-test --symbolsPath /Absolute-Path-To-OBJ/dist/firefox-XXX.crashreporter-symbols-full.zip --geckoProfile --cycles 1 --activeTests tresize. After this command, it generated another zip file for geckoProfile in testing/mozharness/build/blobber_upload_dir/.
- d). unzip zip file generated in c) to get geckoProfile
- a). After Bug 1371838 was landed, you can profile WRRender by geckoProfile. To do this in Talos, please do the following before everything starts.
- run Talos with geckoProfile on try server. You can add |mozharness: --geckoProfile| in your try command.The belowing is a try command example for linux.
- try: -b o -p linux64 -u none -t all[x64] mozharness: --geckoProfile --rebuild-talos 10
- run Talos with geckoProfile in local (take talos resize as example)
Misc
- [ethan] Canvas performance
- [Michael] FPS adjustment
- layout.frame_rate in about:config (-1 means default which is 60, 1000 at maximum)
- [pchang] Use gecko profiler with symbols
- ac_add_options --enable-profiling
- [pchang] Enable CPU profiling when use release build
- export MOZ_DEBUG_SYMBOLS=1
- ac_add_options --enable-debug-symbols
- [pchang] Enable ASAP mode
- layout.frame_rate: 0
- docshell.event_starvation_delay_hint: 1
- [pchang] dump log with timestamp 5 for debug 2 for Err
- MOZ_LOG=Layers:5,timestamp ./mach run 2>&1|tee omta.log
- [pchang] dump stderr to console on windows
- ./mach run 2>&1|tee console.out
- [Jerry] dump call stack for NS_ASSERTION() or NS_WARNING()
- Set prefix for stack message.
- Set stack unwind number
- XPCOM_DEBUG_BREAK="stack" ./mach run
Triage
- [vliu] Triage flow listed.
- Try to reproduce
- Add keyword 'reproducible' if you can reproduce
- Ask reporter set layers.acceleration.disabled as true to try again(depends)
- Enable/Disalbe ANGLE on windows
- Compare the difference between on/off e10s.
- Tried to change the preferences to observe.
- If the issue relatives to painting or text, you can try to change the backend in about:config
- gfx.canvas.azure.backends
- gfx.content.azure.backends
- nglayout.debug.paint_flashing
- layers.draw-borders
- If the issue relatives to painting or text, you can try to change the backend in about:config
- Ask for about:support
- Ask for about:memory if memory related
- ni? people or mgr to help you
- land needed printing message for this bug to observe more information.(this action is providing solution not doing the triage)
- Change priority to P1-3 with reason
- Add gfx-noted if there is nothing you can follow up
- Try to reproduce
- Ways to observe occurrence for triage bug.
- Crash report contains Volume to count for crash rate. There is 10 times of Volume increase between each FF version.
- Install addon bugzilla-socorro-lens can easily see crash rate in graphic view on that bug.
- For Intermittent bug, Orange Factor counts for occurrence rate for that bug you observed.
- Crash report contains Volume to count for crash rate. There is 10 times of Volume increase between each FF version.
- A useful link to help you reading crash report.
- refer keyword here https://wiki.mozilla.org/Platform/GFX/TriageSchedule#Keywords