Preview

Труды Института системного программирования РАН

Расширенный поиск

Методы повышения производительности обратной отладки

https://doi.org/10.15514/ISPRAS-2015-27(2)-8

Аннотация

Обратная отладка - это инструмент разработки ПО, позволяющий более эффективно справляться с ошибками, возникающими при недетерминированном поведении программы. Она позволяет изучать прошедшие состояния программы без ее повторного запуска. В работе описана реализация обратной отладки на основе детерминированного воспроизведения в симуляторе QEMU 2.0. Предлагаются несколько способов повышения производительности отладки за счет сокращения дополнительно записываемых данных, оптимального сохранения снимков системы, индексации и сжатия журнала событий. Симулятор может работать совместно с интерактивным отладчиком GDB, что позволяет использовать команды reverse-continue, reverse-nexti, reverse-stepi и reverse-finish в процессе отладки. Скорость работы этих команд зависит от периода сохранения состояний системы в процессе записи ее работы. В статье представлена оценка наилучшего периода для оптимальной скорости работы команды reverse-continue.

Об авторах

М. А. Климушенкова
Новгородский государственный университет имени Ярослава Мудрого
Россия


П. М. Довгалюк
Новгородский государственный университет имени Ярослава Мудрого
Россия


Список литературы

1. Довгалюк П.М. Обратная отладка программного обеспечения: монография. НовГУ им. Ярослава Мудрого. Великий Новгород 2013. 72 стр.

2. Довгалюк П.М. Детерминированное воспроизведение процесса выполнения программ в виртуальной машине. Труды ИСП РАН, т. 21, 2011 г. стр. 123-132, ISSN 2220-6426 (Online), ISSN 2079-8156 (Print)

3. Dunlap, George W. and King, Samuel T. and Cinar, Sukru and Basrai, Murtaza A. and Chen, Peter M. ReVirt: enabling intrusion analysis through virtual-machine logging and replay. ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation, vol. 36, 2002, pp. 211-224.

4. Haikun Liu, Hai Jin, Xiaofei Liao, Zhengqiu Pan. XenLR: Xen-based Logging for Deterministic Replay. In proc. of Japan-China Joint Workshop on Frontier of Computer Science and Technology (2008). pp. 149-154.

5. Integrated Virtual Debugger for Visual Studio Developer’s Guide. http://www.vmware.com/pdf/ws7_visualstudio_debug.pdf. Дата обращения: 11.06.2015

6. Samuel T. King, George W. Dunlap, and Peter M. Chen. Debugging operating systems with time-traveling virtual machines. Proceedings of the 2005 USENIX Annual Technical Conference, USENIX, 2005, pp. 1-15

7. J. Dike. A user-mode port of the Linux kernel. InProceedings of the 2000 Linux Showcase and Conference, 2000

8. QEMU - open source processor emulator. http://wiki.qemu.org/Main_Page. Дата обращения: 11.06.2015

9. Chia-Wei Hsu, Shiuhpyng Shieh. FREE: A Fine-grain Replaying Executions by Using Emulation. The 20th Cryptology and Information Security Conference (CISC 2010), Taiwan, 2010.

10. Bochs -the cross platform IA-32 emulator. http://bochs.sourceforge.net. Дата обращения: 11.06.2015

11. Daniela A. S. de Oliveira, Jedidiah R. Crandall, Gary Wassermann, S. Felix Wu, Zhendong Su, and Frederic T.Chong. ExecRecorder: VM-based full-system replay for attack analysis and system recovery. Proc. of the 1st workshop on Architectural and system support for improving software dependability (ASID '06), 2006. pp. 66-71

12. GDB and Reverse Debugging. http://sourceware.org/gdb/news/reversible.html. Дата обращения: 11.06.2015

13. Bob Boothe. Efficient Algorithms for Bidirectional Debugging. Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2000, pp. 299-310

14. Marc Rittinghaus, Konrad Miller, Marius Hillenbrand, and Frank Bellosa. Simuboost: Scalable parallelization of functional system simulation. In 11th International Workshop on Dynamic Analysis, WODA ’03, Houston, Texas, March 2013

15. Robert O'Callahan. Efficient Collection And Storage Of Indexed Program Traces. https://www.cs.purdue.edu/homes/xyzhang/fall07/Papers/Amber.pdf. Дата обращения: 11.06.2015

16. Volatility - an advanced memory forensics framework. https://code.google.com/p/volatility/. Дата обращения: 11.06.2015

17. Standalone Debugging Tools for Windows (WinDbg). http://msdn.microsoft.com/en-us/windows/hardware/hh852365. Дата обращения: 11.06.2015

18. Using DDMS. http://developer.android.com/tools/debugging/ddms.html. Дата обращения: 11.06.2015

19. Фурсова Н.И., Довгалюк П.М., Васильев И.А., Климушенкова М.А., Макаров В.А. Способы обратной отладки мобильных приложений. Проблемы информационной безопасности. Компьютерные системы, номер 3, Санкт-Петербург 2014 г, стр. 50-56

20. Wireshark User’s Guide. https://www.wireshark.org/docs/wsug_html/. Дата обращения: 11.06.2015


Рецензия

Для цитирования:


Климушенкова М.А., Довгалюк П.М. Методы повышения производительности обратной отладки. Труды Института системного программирования РАН. 2015;27(2):127-144. https://doi.org/10.15514/ISPRAS-2015-27(2)-8

For citation:


Klimushenkova M.A., Dovgalyuk P.M. Methods to improve reverse debugging performance. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2015;27(2):127-144. (In Russ.) https://doi.org/10.15514/ISPRAS-2015-27(2)-8



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)