PinMemcheck: 이동통신 기기 개발을 위한 Pin 기반의 메모리 오류 검출 道具
PinMemcheck: Pin-Based Memory Leakage Detection Tool for Mobile Device Development
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
메모리 관련 오류 검출은 소프트웨어 개발 시 신뢰성 향상을 위해서 수행하여야 할 가장 중요한 작업중의 하나이다. 그러나 메모리 오류 검출을 위한 긴 디버깅 시간은 이동 통신 기기 개발 과정에 있어 큰 문제가 되었다. 대부분의 메모리 오류 검출 도구는 정적 분석 기법을 사용하나, 큰 용량의 동작 메모리로 인하여 이동 통신 기기 개발에는 사용되지 못하는 경우가 많다. 때문에 이동통신 기기 업체는 고품질의 기기를빠른 시간 내에 개발하는 것이 매우 어려웠다. 이 논문에서 소개될 이동통신 기기 개발을 위한 Pin 기반의 메모리 오류 검출 도구인PinMemcheck은 Pin의 이진 가공 기법과 간단한 데이터 구조를 적용하여 기준 설정 대비 약 1.5배의 실행 시간 부하 내에서 필수 오류들을 모두 검출해 내었다.
Abstract
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.5x execution time overhead compared with that of a baseline configuration by applying the Pin’s binary instrumentation process and a simple data structure
참고문헌 (23)
- 유용덕, "응용프로그램 특성을 고려한모바일 플랫폼의 동적 메모리 관리기법", 정보처리학회논문지. 컴퓨터 및 통신시스템, 13(7), pp.561~572 (2006), 한국정보처리학회
- 정진우, "임베디드 시스템에서 가상 메모리 압축 시스템 설계", 정보처리학회논문지A, 9(4), pp.405~412 (2002)
- 조대완, "C언어 기반 프로그램의 소스코드 분석을 이용한 메모리 접근오류 자동검출 기법", 정보처리학회논문지D, 14(6), pp.675~688 (2007), 한국정보처리학회
- J. Kong, "Improving software security via runtime instruction-level taint checking", Proceedings of the 1st workshop on Architectural and system support for improving software dependability, pp.18~24 (2006)
- Why do computers stop and what can be done about it, "J. Gray", ~, pp.TR-85.7
- N. Nethercote, "Valgrind: A program supervision framework", Proceedings of the 3rd Workshop on Runtime Verification (2003)
- N. Nethercote, "Valgrind: A framework for heavyweight dynamic binary instrumentation", Proceedings of Programming Language Design and Implementation (PLDI), pp.89~100 (2007)
- "IBM Rational Purify"[URL]
- "Brew"[URL]
- C.-K. Luk, "Pin: Building customized program analysis tools with dynamic instrumentation", Proceedings of Programming Language Design and Implementation (PLDI), pp.191~200 (2005)
- N. Nethercote, "Dynamic Binary Analysis and Instrumentation", 박사, Computer Laboratory, pp.2004
- B. M. Cantrill, "Dynamic instrumentation of production systems", Proceedings of USENIX Annual Technical Conference (ATEC) (2004)
- "Efficient, Transparent, and Comprehensive Runtime Code Manipulation, PhD thesis, M.I.T"[URL]
- T. Horel, "UltraSPARC-III: Designing Third-Generation 64-Bit Performance", Proceedings of the International Symposium on Microarchitecture (MICRO), 19(7), pp.73~85 (1999)
- Intel, "Intel Extended Memory 64 Technology Software Developer’s Guide, Vol.1-2", ~ (2004)
- Intel, "IA-32 Intel Architecture Software Developer’s Manual, Vol.1-3", ~ (2003)
- R. N. Kalla, "IBM Power5 chip: A dual-core multithreaded processor", Proceedings of the International Symposium on Microarchitecture (MICRO), pp.40~47 (2004)
- H. Q. Le, "IBM POWER6 microarchitecture", IBM Journal of Research and Development, 51(6), pp.639~662 (2007)
- A. Srivastava, "Atom: A system for building customized program analysis tools", Proceedings of Programming Language Design and Implementation (PLDI), pp.196~205 (1994)
- Intel, "Intel Itanium Architecture Software Developer’s Manual, Vol.1-4", ~ (2002)
- G. Contreras, "Power prediction for Intel XScale® processors using performance monitoring unit events", Proceedings of the 2005 international symposium on Low power electronics and design, pp.201~226 (2005)
- Intel, "Intel PXA27x Processor Family Developer’s Manual", ~ (2004)
