Classification: |
C++ |
Category: |
Application Engines |
Created: |
10/12/99 |
Modified: |
07/27/2004 |
Number: |
FAQ-0299 |
Platform: |
ER5, Symbian OS v6.0, Symbian OS v6.1 |
|
Question: How to debug screen flicker problems?
Answer: Screen flicker is generally caused by CCoeControl subclasses clearing their rectangle before drawing to it in their Draw method.
It's often made worse by excessive use of CCoeControl::DrawNow. Finding the code that is actually causing a particular flicker can often be very difficult. Here's an approach that I've found
very useful in the past:
1. Launch the WINS debugger.2. Resize the MSDev window so that both it and the Symbian OS emulator window are both fully visible.
3. Launch an application with which the flicker can be reproduced.
4. Type ctrl-alt-shift-f to enable Window Server auto-flushing. [This will allow you to see the effect of each draw command]
5. Put a break point in the draw method that is suspected to be causing the problem (or if you're really in the dark then in
CCoeControl::HandleRedrawEvent).
6. Type ctrl-alt-shift-r - this will cause a full screen redraw and the debugger should stop at your break point.
7. Step through the draw code, observing the effect of each draw command on the emulator window.
|