Chapter 11. Debugging and Troubleshooting
Debugging Is a Good Thing
Murphy’s Law may be pessimistic, but at some point for all of us, the adage rings true: If something can go wrong, it will. Despite your best intentions, the SWF files you produce will sooner or later perform in unexpected ways. Maybe an audio clip will fail to play or a button will get stuck in its rollover state. In complex situations, the likelihood of a Murphyism is bound to increase, especially in projects comprised of numerous ActionScript classes or SWF files. This all makes perfect sense, of course. Complexity means a developer has to keep more in mind while working. Humans simply have a limit to the number of details they can juggle at once, so the occasional particulars get overlooked. The cause of unexpected behavior is usually the result of an error in the developer’s logic, though certainly other factors may come into play. An external asset, such as a JPEG file, might be missing from the server; a needed database might be inaccessible; perhaps a typo has crept into the code. The challenge in all these cases is straightforward. Once a SWF file is compiled, the timeline and all vestiges of ActionScript are gone. Assets and programming code have been compiled into bytecode, which is effectively indecipherable to the eye—and unchangeable.
How, then, can a developer see what’s going on, other than to experience the error(s) directly and make minimally informed guesses? The answer hinges on debugging, which ...