I'm doing a survey on methods programmers utilize in dealing with bugs
caused due to non-local dependencies.

Here's an example scenario for such bugs. Suppose you are dealing with a
(large) source code that employs caching a section of a file in a fixed
memory buffer. At the location where you detected failure or fault, the
code's assumption of a certain section of a file being in the cache was
invalid. You would like to know where the cache invalidation occurred
that affects the failure/fault point and how it relates to the
failure/fault point. Please note that the point of the code that
invalidated the caching assumption may be correct. That is the error may
be being caused by the fact the execution is falling into this section of
the code from the higher levels on the calling chain leading to the
failure/fault site or the cache invalidation point.

Another example is failures or faults caused by hanging pointers. In this
case the location pointed by a pointer at a failure/fault site is
overwritten earlier at some arbitrary location in the program.

Any information on how you deal with these type of situations will be
really appreciated.

Please respond by e-mail to yoshi@cs.washington.edu. Thank you.

Yoshito Yamane
[Personally I use lots of debugging printout and binary search in the
program. I hope there's a better way. -John]
--