diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-10-19 15:07:54 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-10-19 15:45:55 -0700 |
commit | 77cdc6d03f7b5660f6df6e57a6e50b015e41e3ea (patch) | |
tree | 1cf49f61c1fb1056b7fda6a84f4f2f95bd95fbae /052tangle.cc | |
parent | f8aa4b17efed4f56b0c023cf40eb6d6000be1748 (diff) | |
download | mu-77cdc6d03f7b5660f6df6e57a6e50b015e41e3ea.tar.gz |
2271 - bugfix: traces cross-contaminating errors
There were several places where we push a call on to a routine without incrementing call-stack depth, which was used to compute the depth at which to trace an instruction. So sometimes you ended up one depth lower than you started a call with. Do this enough times and instructions that should be traced at level 100 end up at level 0 and pop up as errors. Solution: since call-stack depth is only used for tracing, include it in the trace stream and make sure we reset it along with the trace stream. Then catch all places where we forget to increment call-stack depth and make sure we catch such places in the future. When I first ran into this with Caleb I thought there must be some way that we're writing some output into the warnings result. I didn't recognize that the spurious output as part of the trace, just at the wrong level.
Diffstat (limited to '052tangle.cc')
0 files changed, 0 insertions, 0 deletions