350 rub
Journal Highly available systems №2 for 2016 г.
Article in number:
Multi-platform approach to reverse debugging of virtual machines
Authors:
P.M. Dovgalyuk - Ph. D. (Eng.), Associate Professor, Novgorod State University. E-mail: pavel.dovgaluk@gmail.com M.A. Klimushenkova - Junior Research Scientist, Novgorod State University. E-mail: maria.klimushenkova@ispras.ru D.S. Dmitriev - Junior Research Scientist, Novgorod State University. E-mail: denis.dmitriev@ispras.ru V.A. Makarov - Ph. D. (Eng.), Associate Professor, Novgorod State University. E-mail: vladimir.makarov@ispras.ru
Abstract:
New hardware platforms debugging and prototyping is a highly complicated work. We present multi-platform deterministic replay me-thod for virtual machines. It reduces non-determinism of debugging and makes it more convenient. Presented approach was used to create system-wide reverse debugger upon multi-platform simulator QEMU. It can replay faults without affecting its behavior. Our approach is focused on replaying whole virtual machine state including its peripheral devices. Reverse debugging was tested on i386, x86-64, MIPS, and ARM target platforms, with Windows and GNU/Linux operating systems. One can use our debugger for modelling the peripheral devices and debugging user- and kernel-level code. Reverse debugging mechanism is fast enough to be used with real hardware devices and time critical applications.
Pages: 3-12
References

 

  1. Monton M., Portero A., Moreno M., Martinez B., Carrabina J. Mixed sw/systemc soc emulation framework // IEEE International Symposium on Industrial Electronics (ISIE 2007). June 2007. P. 2338−2341.
  2. Baklashov M. An on-line memory state validation using shadow memory cloning // Proceedings of the 17th International On-Line Testing Symposium. ser. IOLTS - 11. Washington, DC, USA: IEEE Computer Society. 2011. P. 186−189. [Online]. Available: http://dx.doi.org/10.1109/IOLTS.2011.5993837.
  3. Gray J. Why do computers stop and what can be done about it?. 1985.
  4. Engblom J. A review of reverse debugging // S4D. 2012.
  5. Chow J., Garfinkel T., Chen P.M. Decoupling dynamic program analysis from execution in virtual environments // USENIX 2008 Annual Technical Conference on Annual Technical Conference, ser. ATC-08. Berkeley, CA, USA: USENIX Association. 2008. P. 1−14. [Online]. Available: http://dl.acm.org/citation.cfm-id=1404014.1404015.
  6. Engblom J., Aarno D., Werner B. Full-system simulation from embedded to high-performance systems // Processor and System-on-Chip Simulation.  Eds. Leupers R. and Temam O. Springer US. 2010. P. 25−45. [Online]. Available: http://dx.doi.org/10.1007/978-1-4419-6175-4_3.
  7. Bellard F. Qemu, a fast and portable dynamic translator // Proceedings of the Annual Conference on USENIX Annual Technical Conference, ser. ATEC - 05. Berkeley, CA, USA: USENIX Association. 2005. P. 41−41. [Online]. Available: http://dl.acm.org/citation.cfm-id=1247360.1247401.
  8. Dolan-Gavitt B., Hodosh J., Hulin P., Leek T., Whelan R. Repeatable reverse engineering for the greater good with panda0187. Oct. 2014.
  9. Liu H., Jin H., Liao X., Pan Z. Xenlr: Xen-based logging for deterministic replay // Proceedings of the 2008 Japan-China Joint Workshop on Frontier of Computer Science and Technology, ser. FCST - 08. Washington, DC, USA: IEEE Computer Society. 2008. P. 149−154. [Online]. Available: http://dx.doi.org/10.1109/FCST.2008.31.
  10. Dovgalyuk P. Deterministic replay of system-s execution with multi-target qemu simulator for dynamic analysis and reverse debugging // Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering, ser. CSMR - 12. Washington, DC, USA: IEEE Computer Society. 2012. P. 553−556.
  11. Boothe B. Efficient algorithms for bidirectional debugging // SIGPLAN Not. May 2000. V. 35. № 5. P. 299−310. [Online]. Available: http://doi.acm.org/10.1145/358438.349339.
  12. Chia-Wei S.S. Hsu. Free: A fine-grain replaying executions by using emulation, ser // The 20th Cryptology and Information Security Conference (CISC 2010). 2010.
  13. Jacobowitz D. and B.P. Reversible debugging. ser. GCC Developer-s Summit, 2007.
  14. Rittinghaus M., Miller K., Hillenbrand M., Bellosa F. Simuboost: Scalable parallelization of functional system simulation // Proceedings of the 11th International Workshop on Dynamic Analysis (WODA 2013). Houston. Texas. March 16 2013.
  15. Henderson A., Prakash A., Yan L.K., X. Hu, Wang X., Zhou R., Yin H. Make it work, make it right, make it fast: Building a platform-neutral whole-system dynamic binary analysis platform // Proceedings of the 2014 International Symposium on Software Testing and Analysis, ser. ISSTA 2014. New York, NY, USA: ACM. 2014. P. 248−258. [Online]. Available: http://doi.acm.org/10.1145/2610384.2610407.