DOI QR코드

DOI QR Code

PinMemcheck: 이동통신 기기 개발을 위한 Pin 기반의 메모리 오류 검출 도구(道具)

PinMemcheck: Pin-Based Memory Leakage Detection Tool for Mobile Device Development

  • 조경진 (고려대학교 전기전자전파공학과) ;
  • 김선욱 (고려대학교 전기전자전파공학과)
  • 투고 : 2010.12.24
  • 심사 : 2011.03.29
  • 발행 : 2011.04.30

초록

메모리 관련 오류 검출은 소프트웨어 개발 시 신뢰성 향상을 위해서 수행하여야 할 가장 중요한 작업중의 하나이다. 그러나 메모리 오류 검출을 위한 긴 디버깅 시간은 이동 통신 기기 개발 과정에 있어 큰 문제가 되었다. 대부분의 메모리 오류 검출 도구는 정적 분석 기법을 사용하나, 큰 용량의 동작 메모리로 인하여 이동 통신 기기 개발에는 사용되지 못하는 경우가 많다. 때문에 이동통신 기기 업체는 고품질의 기기를 빠른 시간 내에 개발하는 것이 매우 어려웠다. 이 논문에서 소개될 이동통신 기기 개발을 위한 Pin 기반의 메모리 오류 검출 도구인 PinMemcheck은 Pin의 이진 가공 기법과 간단한 데이터 구조를 적용하여 기준 설정 대비 약 1.5배의 실행 시간 부하 내에서 필수 오류들을 모두 검출해 내었다.

Memory error debugging is one of the most critical processes in improving software quality. However, due to the extensive time consumed to debug, the enhancement often leads to a huge bottle neck in the development process of mobile devices. Most of the existing memory error detection tools are based on static error detection; however, the tools cannot be used in mobile devices due to their use of large working memory. Therefore, it is challenging for mobile device vendors to deliver high quality mobile devices to the market in time. In this paper, we introduce "PinMemcheck", a pin-based memory error detection tool, which detects all potential memory errors within $1.5{\times}$ execution time overhead compared with that of a baseline configuration by applying the Pin's binary instrumentation process and a simple data structure.

키워드

참고문헌

  1. 유용덕, 박상현, 최훈. "응용프로그램 특성을 고려한 모바일 플랫폼의 동적 메모리 관리기법", 정보처리학회논문지A, 제13권 제7호, pp.561-572, 2006. https://doi.org/10.3745/KIPSTA.2006.13A.7.561
  2. 정진우, 장승주. "임베디드 시스템에서 가상 메모리 압축 시스템 설계", 정보처리학회논문지A, 제9권 제4호, pp.405-412, 2002. https://doi.org/10.3745/KIPSTA.2002.9A.4.405
  3. 조대완, 오승욱, 김현수. "C언어 기반 프로그램의 소스코드 분석을 이용한 메모리 접근오류 자동검출 기법", 정보처리학회논문지D, 제14권 제6호, pp.675-688, 2007. https://doi.org/10.3745/KIPSTD.2007.14-D.6.675
  4. J. Kong, C. C. Zou and H. Zhou, "Improving software security via runtime instruction-level taint checking", In Proceedings of the 1st workshop on Architectural and system support for improving software dependability, pp.18-24, 2006.
  5. A. Kolawa and A. Hicken, "Insure++: A tool to support total quality software", www.parasoft.com/insure/papers/tech.htm.
  6. J. Gray, "Why do computers stop and what can be done about it?", HP Labs Technical Reports / TR-85.7.
  7. N. Nethercote and J. Seward, "Valgrind: A program supervision framework", In Proceedings of the 3rd Workshop on Runtime Verification, 2003.
  8. N. Nethercote and J. Seward, "Valgrind: A framework for heavyweight dynamic binary instrumentation", In Proceedings of Programming Language Design and Implementation (PLDI), pp.89-100, 2007.
  9. IBM Rational software, "IBM Rational Purify", http://www.rational.com.
  10. QUALCOMM Incorporation, "Brew", http://brew.qualcomm.com/brew/en/developer/getting_started/get_started.html
  11. C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S.Wallace, V. J. Reddi and K. Hazelwood, "Pin: Building customized program analysis tools with dynamic instrumentation", In Proceedings of Programming Language Design and Implementation (PLDI), pp.191-200, 2005.
  12. N. Nethercote, "Dynamic Binary Analysis and Instrumentation", PhD thesis, Computer Laboratory, University of Cambridge, United Kingdom, 2004.
  13. B. M. Cantrill, M. W. Shapiro and A. H. Leventhal, Dynamic instrumentation of production systems, In Proceedings of USENIX Annual Technical Conference (ATEC), 2004.
  14. D. L. Bruening, "Efficient, Transparent, and Comprehensive Runtime Code Manipulation", PhD thesis, M.I.T. (http://www.cag.lcs.mit.edu/dynamorio/), 2004.
  15. T. Horel and G. Lauterbach, "UltraSPARC-III: Designing Third-Generation 64-Bit Performance", In Proceedings of the International Symposium on Microarchitecture (MICRO), Vol.19, No.7, pp.73-85, 1999.
  16. Intel, "Intel Extended Memory 64 Technology Software Developer's Guide", Vol.1-2, 2004.
  17. Intel, "IA-32 Intel Architecture Software Developer's Manual", Vol.1-3, 2003.
  18. R. N. Kalla, B. Sinharoy and J. M. Tendler, "IBM Power5 chip: A dual-core multithreaded processor", In Proceedings of the International Symposium on Microarchitecture (MICRO) / pp.40-47, 2004.
  19. H. Q. Le, W. J. Starke, J. S. Fields, F. P. O'Connell, D. Q. Nguyen, B. J. Ronchetti, W. M. Sauer, E. M. Schwarz and M. T. Vaden, "IBM POWER6 microarchitecture", IBM Journal of Research and Development, Vol.51, No.6, pp.639-662, 2007. https://doi.org/10.1147/rd.516.0639
  20. A. Srivastava and A. Eustace, "Atom: A system for building customized program analysis tools", In Proceedings of Programming Language Design and Implementation (PLDI), pp.196-205, 1994.
  21. Intel, "Intel Itanium Architecture Software Developer's Manual", Vol.1-4, 2002.
  22. G. Contreras and M. Martonosi, "Power prediction for Intel $XScale^{(R)}$ processors using performance monitoring unit events", In Proceedings of the 2005 international symposium on Low power electronics and design, pp.201-226, 2005.
  23. Intel, "Intel PXA27x Processor Family Developer's Manual", 2004.