dc.citation.conferencePlace |
US |
- |
dc.citation.conferencePlace |
Manhattan, KS |
- |
dc.citation.endPage |
428 |
- |
dc.citation.startPage |
419 |
- |
dc.citation.title |
Electronic Proceedings in Theoretical Computer Science |
- |
dc.contributor.author |
Yi, Jooyong |
- |
dc.date.accessioned |
2023-12-20T00:38:57Z |
- |
dc.date.available |
2023-12-20T00:38:57Z |
- |
dc.date.created |
2019-03-04 |
- |
dc.date.issued |
2013-09-19 |
- |
dc.description.abstract |
Backtracking (i.e., reverse execution) helps the user of a debugger to naturally think backwards along the execution path of a program, and thinking backwards makes it easy to locate the origin of a bug. So far backtracking has been implemented mostly by state saving or by checkpointing. These implementations, however, inherently do not scale. Meanwhile, a more recent backtracking method based on reverse-code generation seems promising because executing reverse code can restore the previous states of a program without state saving. In the literature, there can be found two methods that generate reverse code: (a) static reverse-code generation that pre-generates reverse code through static analysis before starting a debugging session, and (b) dynamic reverse-code generation that generates reverse code by applying dynamic analysis on the fly during a debugging session. In particular, we espoused the latter one in our previous work to accommodate non-determinism of a program caused by e.g., multi-threading. To demonstrate the usefulness of our dynamic reverse-code generation, this article presents a case study of various backtracking methods including ours. We compare the memory usage of various backtracking methods in a simple but nontrivial example, a bounded-buffer program. In the case of non-deterministic programs such as this bounded-buffer program, our dynamic reverse-code generation outperforms the existing backtracking methods in terms of memory efficiency. |
- |
dc.identifier.bibliographicCitation |
Electronic Proceedings in Theoretical Computer Science, pp.419 - 428 |
- |
dc.identifier.doi |
10.4204/EPTCS.129.27 |
- |
dc.identifier.issn |
2075-2180 |
- |
dc.identifier.scopusid |
2-s2.0-84884651822 |
- |
dc.identifier.uri |
https://scholarworks.unist.ac.kr/handle/201301/35630 |
- |
dc.language |
영어 |
- |
dc.publisher |
Electronic Proceedings in Theoretical Computer Science |
- |
dc.title |
A case for dynamic reverse-code generation to debug non-deterministic programs |
- |
dc.type |
Conference Paper |
- |
dc.date.conferenceDate |
2013-09-19 |
- |