Most programmers write code that makes assumptions about various things that can happen.
Whether this is done consciously or not, the problems that occur when these assumptions are violated are often the most difficult to track down. In many cases, the program will run to completion with no indication of error, except that the final answer is incorrect. Debugging the hard way The simple case just described, the NULL pointer, will probably be tracked down pretty easily, since Insight will pinpoint the error immediately. A few minutes of work should eliminate this problem. The second case is much harder.