Affiliation:
1. Univ. of Pittsburgh, Pittsburgh, PA
Abstract
We present a novel approach to avoid the debugging of optimized code through comparison checking. In the technique presented, both the unoptimized and optimized versions of an application program are executed, and computed values are compared to ensure the behaviors of the two versions are the same under the given input. If the values are different, the comparison checker displays where in the application program the differences occurred and what optimizations were involved. The user can utilize this information and a conventional debugger to determine if an error is in the unoptimized code. If the error is in the optimized code, the user can turn off those offending optimizations and leave the other optimizations in place. We implemented our comparison checking scheme, which executes the unoptimized and optimized versions of C programs, and ran experiments that demonstrate the approach is effective and practical.
Publisher
Association for Computing Machinery (ACM)
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Automatic Generation of Debug Headers through BlackBox Equivalence Checking;2022 IEEE/ACM International Symposium on Code Generation and Optimization (CGO);2022-04-02
2. Who’s debugging the debuggers? exposing debug information bugs in optimized binaries;Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems;2021-04-17
3. Debug information validation for optimized code;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06
4. An automated approach to reducing test suites for testing retargeted C compilers for embedded systems;Journal of Systems and Software;2011-12
5. Whole Execution Traces and Their Use in Debugging;The Compiler Design Handbook;2007-12-07