350 руб
Журнал «Системы высокой доступности» №2 за 2016 г.
Статья в номере:
Мультиплатформенный метод обратной отладки виртуальных машин
Авторы:
П.М. Довгалюк - к.т.н., доцент, Новгородский государственный университет. E-mail: pavel.dovgaluk@gmail.com М.А. Климушенкова - мл. науч. сотрудник, Новгородский государственный университет. E-mail: maria.klimushenkova@ispras.ru Д.С. Дмитриев - мл. науч. сотрудник, Новгородский государственный университет. E-mail: denis.dmitriev@ispras.ru В.А. Макаров - к.т.н., доцент, Новгородский государственный университет. E-mail: vladimir.makarov@ispras.ru
Аннотация:
Отмечено, что отладка и прототипирование новых аппаратных платформ, периферийных устройств и операционных систем осложняется недетерминированностью их поведения, воздействием отладчика на систему, длительностью процесса воспро-изведения ошибок, отказами всей системы и другими подобными факторами. Предложен метод детерминированного воспро-изведения работы виртуальных машин и показано, как он позволяет бороться со сложностями, возникающими при отладке. На основе разработанного подхода авторами создан мультиплатформенный полносистемный обратный отладчик, поддерживающий целевые платформы i386, x86-64, MIPS и ARM, протестированный для гостевых ОС Windows и GNU/Linux, с помощью которого становится возможным изучение сбоев без воздействия на их проявление, воспроизведение и многократное изучение состояния всей виртуальной машины и всех ее периферийных устройств, моделирование периферийных устройств и отладка пользовательского и системного кода. Установлено, что влияние на процесс отладки ограничено лишь вносимым при записи работы системы замедлением, которое незначительно влияет на работу гостевой системы и позволяет отлаживать критичные ко времени приложения.
Страницы: 3-12
Список источников

 

  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.