![]() ![]() ![]() Unfortunately, this renders the RnR log inconsistent and makes Replay Debugging (i.e., debugging while using an RnR log for replay) dicey at best. For bug diagnosis, developers typically want to modify the code, e.g., by creating and operating on new variables, or printing state. However, simply providing support for repeatedly stumbling on the same bug does not help diagnose it. Hardware-assisted Record and Deterministic Replay (RnR) of programs has been proposed as a primitive for debugging hard-to-repeat software bugs. We describe an implementation of rdb based on LLVM and Pin, and show an example of how rdb's replay debugging helps diagnose a real bug The second mechanism is a runtime infrastructure that replays the application and, without affecting it in any way, invokes the appropriate debug code at the appropriate locations. The first one is compiler support to split the instrumented application into two executables: one that is identical to the original program binary, and another that encapsulates all the added debug code. This paper presents rdb, the first scheme for replay debugging that guarantees exact replay. Unfortunately, this renders the RnR log inconsistent and makes Replay Debugging (i.e., debugging while using an RnR log for replay) dicey at best Furthermore, our findings suggest that performance (traditionally one of the primary drivers for migrations) is rarely improved after a migration. We find that over 70% of the migrated projects encounter on average two post-migration bugs due to the new logging library. We find that the five main drivers for logging library migration are: 1) to increase flexibility (i.e., the ability to use different logging libraries within a project) 2) to improve performance, 3) to reduce effort spent on code maintenance, 4) to reduce dependence on other libraries and 5) to obtain specific features from the new logging library. From our manual analysis of JIRA issues, we find that 33 out of 223 (i.e., 14%) ASF projects have undergone at least one logging library migration. In this paper we study logging library migrations within Apache Software Foundation (ASF) projects. As new libraries emerge and current ones evolve, projects often migrate from an older library to another one. The increased dependence on logs has lead to the development of numerous logging libraries which help developers in logging their code. We present the design and implementation of 'rr', describe its performance on a variety of workloads, and identify constraints on hardware and operating system design required to support our approach.ĭevelopers leverage logs for debugging, performance monitoring and load testing. "rr" forms the basis of an open-source reverse-execution debugger seeing significant use in practice. ![]() With some novel optimizations, our system 'rr' records and replays real-world low-parallelism workloads with low overhead, with an entirely user-space implementation, using stock hardware, compilers, runtimes and operating systems. Fortunately modern Intel CPUs, Linux kernels and user-space frameworks do meet these constraints, although this has only become true recently. The answer turns out to be yes - if the CPU and operating system meet certain non-obvious constraints. We investigated whether it is possible to build a practical record-and-replay system avoiding all these issues. Existing record-and-replay approaches limit deployability by recording an entire virtual machine (heavyweight), modifying the OS kernel (adding deployment and maintenance costs), requiring pervasive code instrumentation (imposing significant performance and complexity overhead), or modifying compilers and runtime systems (limiting generality). The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed systems. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |