Administrator
|
Don't just look it over -- humans tend to see what we expect/want to see and not what is actually there.
Take out a sheet of paper and walk through the execution of a call and a return manually, step by step, in writing (don't do any of it in your head, which will force you to work at the level of what's there and not what you think is there). See if what your memory ends up like at the end is really what you expect it to be.
The NestedCall tests are looking at what happens when one function gets called and then calls another in turn. If you are not having problems with a single call/return, then the problem is usually either the return address is not being handled properly or the return value is not being handled properly. These are things that can behave as expected with a single call/return, but get messed up when multiple nested calls are made.
|