KR20110065067A - 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법 - Google Patents

멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법 Download PDF

Info

Publication number
KR20110065067A
KR20110065067A KR1020090121899A KR20090121899A KR20110065067A KR 20110065067 A KR20110065067 A KR 20110065067A KR 1020090121899 A KR1020090121899 A KR 1020090121899A KR 20090121899 A KR20090121899 A KR 20090121899A KR 20110065067 A KR20110065067 A KR 20110065067A
Authority
KR
South Korea
Prior art keywords
information
thread
error
indicator
visual interface
Prior art date
Application number
KR1020090121899A
Other languages
English (en)
Inventor
박진만
문승도
박정규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090121899A priority Critical patent/KR20110065067A/ko
Priority to US12/896,771 priority patent/US20110138236A1/en
Publication of KR20110065067A publication Critical patent/KR20110065067A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

멀티 쓰레드의 수행 상황과 에러의 발생 사이의 관계에 대한 정보를 효율적으로 제공할 수 있는 비주얼 인터페이스 제공 방법을 제공한다. 프로그램 코드를 멀티 쓰레드로 처리하는 과정에서 발생되는 적어도 하나의 에러에 대한 에러 로그 정보가 생성된다. 에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의에 따라, 에러 로그 정보가 마크업 언어 파일로 생성된다. 마크업 언어 파일을 렌더링하여 에러가 발생한 쓰레드에 대한 일반 정보 및 쓰레드에서 발생된 에러에 관한 에러 정보를 포함하는 적어도 하나의 쓰레드에 대한 정보 및 적어도 하나의 쓰레드가 수행된 시간을 포함하는 비주얼 인터페이스를 제공된다.
멀티 쓰레드, 멀티 코어, 비주얼 인터페이스, 디버깅, 소프트웨어

Description

멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법{Apparatus for providing visual interface of error information generated in multi-thread testing and method thereof}
프로그램의 테스팅에 관한 비주얼 인터페이스에 관한 것으로, 더욱 상세하게는, 멀티 쓰레드 테스팅시 발생되는 에러에 대한 비주얼 인터페이스 제공 방법 및 장치에 관한 것이다.
근래, 소정 시간 내에 복수의 태스크를 실시간으로 동시 처리하는 실시간 처리를 필요로 하는 기기가 증가하고 있다. 이와 같은 복수의 태스크 처리를 효율적으로 실행하기 위하여, 멀티 쓰레드(multi-thread) 처리가 이용된다.
멀티 쓰레드란 CPU와 같은 프로세서(또는 코어)의 자원을 공유하며, 다수의 쓰레드가 동시에 수행되며 태스크를 수행하는 것을 말한다. 싱글 코어 프로세서에서는 전체적인 시스템 이용(usage)를 높이기 위해 사용되고, 멀티 코어 프로세서에서는 병렬적 수행을 통해 시스템의 이용 및 수행 시간 향상을 위해 사용된다.
동시에 수행하는 멀티 쓰레드는 에러의 특성상 데이터 레이스(data race), 메모리 리크(memory leak)와 같은 에러가 발생된다. 데이터 레이스는 싱글 프로세 스에서 2이상의 쓰레드가 동일한 메모리 위치에 동시에 액세스할 때 발생되고, 메모리 리크는 프로그램이 요구한 메모리를 해제(release)할 수 없는 경우 발생된다. 이러한 에러를 발견하기 위하여, 근래에 여러 벤더들이 멀티 쓰레드 에러 체킹 툴을 출시하고 있다. 그러나, 이러한 멀티 쓰레드 에러 툴은 텍스트 위주의 에러 및 경고(warning) 정보를 제공하여 직관성이 떨어지므로, 에러를 리트레이스(retrace)하여 에러의 디버깅이 어렵다.
멀티 쓰레드의 수행 상황과 에러 발생 사이의 관계에 대한 정보를 효율적으로 제공할 수 있는 비주얼 인터페이스 제공 방법 및 장치를 제공한다.
일 측면에 따른 멀티 쓰레드 에러 정보 제공 방법은, 멀티 쓰레드 에러 정보 제공 방법은, 프로그램 코드를 멀티 쓰레드로 처리하는 과정에서 발생되는 적어도 하나의 에러에 대한 에러 로그 정보를 생성하는 동작과, 에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의에 따라, 에러 로그 정보를 마크업 언어 파일로 생성하는 동작과, 마크업 언어 파일을 렌더링하여 에러가 발생한 쓰레드에 대한 일반 정보 및 쓰레드에서 발생된 에러에 관한 에러 정보를 포함하는 적어도 하나의 쓰레드에 대한 정보 및 적어도 하나의 쓰레드가 수행된 시간을 포함하는 비주얼 인터페이스를 제공하는 동작을 포함한다.
미리 설정된 문서 형식 정의는, 쓰레드에 대한 일반 정보 및 쓰레드에서 발생된 에러에 관한 에러 정보를 나타내는 적어도 하나의 정보 항목 및 다른 마크업 언어 파일로의 연결 정보를 포함할 수 있다.
쓰레드에 대한 일반 정보는, 쓰레드 식별 정보, 쓰레드 라이프 타임 및 쓰레드가 할당된 프로세서 식별 정보, 쓰레드가 이용하는 적어도 하나의 메모리 어드레스, 메모리 어드레스를 가리키는 변수 이름, 콜 스택 정보 및 쓰레드 간의 관계 정보 중 적어도 하나를 포함할 수 있다. 에러 정보는, 쓰레드에 대한 에러 타입, 에러 발생 시간 및 에러가 발생된 메모리 어드레스 중 적어도 하나를 포함할 수 있다.
비주얼 인터페이스를 제공하는 단계는, 에러가 발생한 적어도 하나의 쓰레드에 대한 정보를 제1 축상에 배열하는 동작과, 적어도 하나의 쓰레드가 수행된 시간을 제1 축과 다른 제2 축상에 표시하는 동작을 포함할 수 있다.
멀티 쓰레드 에러 정보 제공 방법은, 각각 사용자 입력에 의해 선택가능하도록 구성된 에러가 발생한 적어도 하나의 쓰레드에 대한 정보 항목을 나타내는 적어도 하나의 인디케이터를 제공하는 동작과, 적어도 하나의 인디케이터 중 하나의 인디케이터를 선택하는 사용자 입력 신호에 따라, 선택된 인디케이터와 연결되며, 인디케이터가 나타내는 정보 항목에 관한 상세 정보를 포함하는 마크업 언어 파일을 로딩하여 다른 비주얼 인터페이스를 제공하는 동작을 더 포함할 수 있다.
적어도 하나의 인디케이터는, 쓰레드에서 에러가 발생된 메모리 어드레스를 나타내는 제1 인디케이터, 쓰레드에서 에러가 발생된 시간을 나타내는 제2 인디케 이터, 및 쓰레드가 동작되는 프로세서 식별 정보를 나타내는 제3 인디케이터 중 적어도 하나를 포함할 수 있다.
제1 인디케이터를 선택하는 사용자 입력 신호에 따라서, 메모리 어드레스를 공통적으로 이용하는 적어도 하나의 다른 쓰레드에 대한 정보를 표시하는 동작이 수행될 수 있다. 제2 인디케이터를 선택하는 사용자 입력 신호에 따라서, 에러가 속한 함수 및 함수를 호출한 또 다른 함수를 표시하는 동작과, 함수를 호출한 또 다른 함수가 다른 쓰레드에서 호출된 함수인 경우, 다른 쓰레드에 대한 정보를 표시하는 동작이 더 수행될 수 있다. 제3 인디케이터를 선택하는 사용자 입력 신호에 따라서, 프로세서에서 실행되고 있는 적어도 하나의 다른 쓰레드에 대한 정보를 표시하는 동작이 더 수행될 수 있다.
또 다른 측면에 따른 멀티 쓰레드 에러 정보 제공 장치는, 프로그램 코드를 멀티 쓰레드로 처리하는 과정에서 발생되는 적어도 하나의 에러에 대한 에러 로그 정보를 생성하는 에러 체킹부와, 에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의에 따라, 에러 로그 정보를 마크업 언어 파일로 생성하는 마크업 언어 파일 생성부와, 마크업 언어 파일을 렌더링하여 에러가 발생한 쓰레드에 대한 일반 정보 및 쓰레드에서 발생된 에러에 관한 에러 정보를 포함하는 적어도 하나의 쓰레드에 대한 정보 및 적어도 하나의 쓰레드가 수행된 시간을 포함하는 비주얼 인터페이스를 제공하는 비주얼 인터페이스 제공부를 포함한다.
멀티 쓰레드의 수행 상황과 에러의 발생 사이의 관계에 대한 정보를 효율적으로 제공할 수 있는 비주얼 인터페이스를 제공할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 멀티 쓰레드에서 발생한 에러 정보 제공을 위한 비주얼 인터페이스의 기본 형식의 일 예를 나타내는 도면이다.
멀티 쓰레드에서 발생한 에러 정보에 대한 비주얼 인터페이스 화면(100)은, 시간 정보 제공 영역(110) 및 쓰레드 정보 제공 영역(120)으로 구성될 수 있다. 또한, 비주얼 인터페이스(100)는 에러가 발생한 적어도 하나의 쓰레드에 대한 정보를 도 1의 비주얼 인터페이스 화면(100)의 X축에 해당하는 제1 축상에 배열하고, 적어도 하나의 쓰레드가 수행된 시간을 제1 축과 다른 제2 축상에 제공한다. 도 1을 참조하면, 쓰레드 정보 제공 영역(120)의 수평 축에 해당하는 제1 축에 에러가 발생한 쓰레드에 대한 정보가 표시되고, 시간 정보 제공 영역(110)의 수직 축에 해당하는 제2 축에 쓰레드와 관련된 시간 정보가 표시될 수 있다.
적어도 하나의 쓰레드에 대한 정보는, 각각 쓰레드에 대한 일반 정보 및 각 쓰레드에서 발생된 에러에 관한 에러 정보를 포함할 수 있다. 쓰레드에 대한 일반 정보는, 쓰레드 식별 정보, 쓰레드 라이프 타임, 쓰레드가 할당된 프로세서 식별 정보 중 적어도 하나를 포함할 수 있다. 여기에서, 쓰레드 라이프 타임은 쓰레드가 시작한 시간, 쓰레드가 끝나는 시간으로 나타낼 수 있다.
또한, 쓰레드에 대한 일반 정보는, 쓰레드가 이용하는 적어도 하나의 메모리 어드레스, 메모리 어드레스를 가리키는 변수 이름, 콜 스택 정보 및 쓰레드 사이의 관계 정보 중 적어도 하나를 더 포함할 수 있다. 여기에서, 콜 스택 정보는 실행되는 프로그램의 서브 루틴(subroutine)에 관한 정보, 즉, 함수 간의 호출 관계에 관한 정보를 동적으로 저장하는 스택 데이터 구조를 나타내는 콜 스택에 관한 정보를 나타낸다. 쓰레드 사이의 관계는, 2이상의 쓰레드들이 부모(parent) 쓰레드 및 자식(child) 쓰레드 관계인지, 서로 형제(siblings) 쓰레드의 관계인지 등에 대한 정보를 나타낸다.
또한, 에러 정보는, 쓰레드에 대한 에러 타입, 에러 발생 시간 및 에러 발생과 관련된 변수 이름(예를 들어, 에러가 발생된 메모리 어드레스, 에러가 발생된 소스 코드의 위치) 및 에러 발생시의 콜 스택 정보 중 적어도 하나를 포함할 수 있다. 에러 타입은 데이터 레이스(data race), 메모리 리크(memory leak), 널 프리(null free) 등일 수 있으며, 다른 형태의 에러 타입 정보가 추가될 수 있다.
에러가 발생한 적어도 하나의 쓰레드에 대한 정보(130, 140, 150, 160)는 제2 축의 방향으로 쓰레드가 수행된 시간의 길이를 가지는 도형으로 표시될 수 있다. 도 1에서는 시간축 방향으로 수행된 시간에 대응하는 길이를 나타내는 격자 형태로 쓰레드에 대한 정보가 표시되고 있으나, 쓰레드를 나타내는 형태는 이에 한정되지 않고 다양하게 변형될 수 있다.
쓰레드 1(130), 쓰레드 2(140), 쓰레드 3(150) 및 쓰레드 4(160)에서, "1", "2", "3" 및 "4"는 쓰레드 식별 정보를 나타낸다. 쓰레드 1(130)을 나타내는 격자의 윗라인(133)은 쓰레드 1(130)의 시작 시간을 나타내고, 아랫 라인(134)은 쓰레드 1(130)의 종료 시작을 나타낼 수 있다. 나머지 쓰레드들(140, 150, 160)에 대해서도 시간 정보 제공 영역(110)에 쓰레드의 시작 시간, 종료 시간, 및 에러 발생 시간이 제공될 수 있다.
도 1에서, 프로세서 1로 표시되는 정보 항목(170)은 쓰레드 1(130), 쓰레드 2(140) 및 쓰레드 3(150)이 식별정보가 "1"인 프로세서에서 실행됨을 나타내고, 프로세서 2로 표시되는 정보 항목(180)은 쓰레드 4(160)가 식별정보가 "2"인 프로세서에서 실행됨을 나타낸다.
각 쓰레드(130, 140, 150, 160)에 대한 정보는 에러가 발생한 적어도 하나의 쓰레드에 대한 정보 항목을 나타내며, 각각 사용자 입력에 의해 선택가능하도록 구성된 적어도 하나의 인디케이터(131, 141, 151, 161)로서 제공될 수 있다. 적어도 하나의 인디케이터 중 하나의 인디케이터를 선택하는 사용자 입력 신호가 수신되면, 비주얼 인터페이스(100)는, 사용자 입력 신호에 따라, 선택된 인디케이터와 연결된 상세 정보를 포함하는 다른 비주얼 인터페이스를 제공할 수 있다.
도 1에서, 작은 원형은 각 쓰레드에 대한 상세 정보가 제공되도록 구성된 인디케이터(131, 141, 151, 161)의 일 예를 나타낸다. 도 1에서, 인디케이터(131, 141, 151, 161)는 점의 형태를 가지지만, 인디케이터는 삼각형, 오각형 등 다양한 형태로 표시될 수 있다. 또한, 인디케이터(131, 141, 151, 161)는 동일한 메모리 어드레스를 나타내는 경우, 동일한 색으로 표시되고, 다른 메모리 어드레스를 나타내는 경우, 서로 다른 색으로 표시될 수 있다. 예를 들어, 인디케이터(131) 및 인디케이터(161)는 동일한 메모리의 어드레스를 참조하는 동작에 의해 발생된 인디케이터로서 동일한 색으로 표시되고, 인디케이터(141) 및 인디케이터(151)는 동일한 메모리의 어드레스를 참조하는 동작에 의해 발생된 인디케이터로서 동일한 색으로 표시될 수 있다. 이에 비해, 인디케이터(131)와 인디케이터(141)는 서로 다른 메모리 어드레스를 참조하는 동작에 의해 발생된 에러에 대한 인디케이터이므로 서로 구별되도록 상이한 색으로 표시될 수 있다.
또한, 해당 메모리 어드레스에서 에러가 발생한 횟수에 따라서, 인디케이터(131, 141, 151, 161)의 색이 진해지거나 옅어지도록 표시될 수 있으며, 사용자는 에러 발생 빈도에 따른 레벨을 설정하여 빈도가 높은 에러부터 볼 수 있다.
쓰레드의 에러 발생 시간에 대응하는 정보 항목 및 쓰레드가 수행되는 프로세서 식별 정보에 대한 정보 항목(170, 180)도 사용자 입력 신호에 의해 선택가능하도록 구성된 인디케이터로 구성될 수 있다. 여기에서, 메모리 어드레스를 나타내는 인디케이터를 제1 인디케이터라고 하고, 에러 발생 시간을 나타내는 인디케이터를 제2 인디케이터라고 하고, 프로세서 식별 정보를 나타내는 인디케이터를 제3 인디케이터라고 할 수 있다.
이러한 인디케이터를 선택하는 사용자 입력에 따라 해당 인디케이터가 나타 내는 내용과 연관된 상세 정보를 제공하는 추가적인 비주얼 인터페이스가 제공될 수 있다. 이외에도, 쓰레드에 관한 정보에 대한 다양한 항목이 사용자 입력 신호에 의해 선택가능하도록 구성되며, 사용자 입력에 따라 해당 인디케이터와 관련된 상세 정보를 제공하는 비주얼 인터페이스와 연결되도록 제공될 수 있다.
이와 같이, 일 실시예에 따른 멀티 쓰레드 에러 정보 제공을 위한 비주얼 인터페이스를 이용하여, 동시에 실행되는 쓰레드 중에서 어느 쓰레드에서 어떤 시간과 어떤 메모리 어드레스에서 에러가 발생했는지 및 에러가 발생한 쓰레드에서 에러가 발생된 메모리 어드레스에 액세스하는 다른 쓰레드에 대한 정보등이 직관적으로 파악되도록 제공될 수 있다.
도 2는 멀티 쓰레드에서 발생한 에러 정보 제공을 위한 비주얼 인터페이스의 제공 화면의 일 예를 나타내는 도면이다.
도 2는 멀티 쓰레드 에러 정보 제공을 위한 비주얼 인터페이스(200)는 초기 화면으로 제공될 수 있다. 도 1에 도시한 바와 같이, 복수 개의 쓰레드에서 에러가 발생하는 경우에도, 초기 화면으로는 하나의 쓰레드에 대한 정보가 표시될 수 있다. 초기 화면에 표시되는 쓰레드는 에러가 발생된 복수 개의 쓰레드 중에서 선택될 수 있으며, 예를 들어, 에러 발생 빈도가 가장 많은 쓰레드에 대한 정보가 초기 화면에 제공될 수 있는 등 다양한 변형이 가능하다.
도 1의 비주얼 인터페이스(100)와 같이, 비주얼 인터페이스(200)는 시간 정보 제공 영역(210) 및 쓰레드 정보 제공 영역(220)으로 구성될 수 있다. 또한, 비주얼 인터페이스(200)는 에러가 발생한 적어도 하나의 쓰레드에 대한 정보를 제1 축상에 배열하고, 적어도 하나의 쓰레드가 수행된 시간을 제1 축과 다른 제2 축상에 제공한다.
시간 정보 제공 영역(210)에서는 애플리케이션 시작 시간, 쓰레드 11(230)의 시작 시간, 쓰레드 11(230)의 종료 시간, 쓰레드 11(230)의 에러 발생 시간이 제공될 수 있다. 또한, 시간 정보 제공 영역(210)에 에러 발생 시간을 나타내는 제2 인디케이터(232)가 제공될 수 있다. 도 2에 도시한 바와 같이, 쓰레드 11(230)의 시작 시간을 0으로 설정하고, 설정된 시간을 기준으로 나머지 시간들을 수치화할 수 있으나, 시간 정보 제공 영역(210)에 제공되는 시간은 다양한 단위 시간으로 표시될 수 있다.
쓰레드 정보 제공 영역(220)에는 쓰레드 11(230)의 식별 정보 "11", 쓰레드 11(230)의 메모리 어드레스를 나타내는 제1 인디케이터(231), 에러 타입, 및 쓰레드 11(230)이 실행되는 프로세서 식별 정보를 나타내는 인디케이터(240)가 제공될 수 있다. 이와 같이, 쓰레드가 수행되는 시간과 함께, 에러 타입 및 쓰레드가 실행되는 프로세서에 대한 정보가 함께 제공되므로, 멀티 쓰레드 에러를 디버깅하는 사용자는 에러 발생 상황을 직관적으로 파악할 수 있다.
인디케이터(231, 232, 240)와 같이, 하나의 쓰레드에서 에러가 발생과 관련된 정보와 관련되어 표시되는 적어도 하나의 다른 정보 항목에 대하여 각각 사용자 입력에 의해 선택가능하도록 인디케이터가 제공될 수 있다. 인디케이터를 선택하는 사용자 입력 신호에 따라, 표시된 정보 항목에 대한 상세 정보를 포함하는 다른 비주얼 인터페이스가 제공될 수 있다.
메모리 어드레스를 나타내는 제1 인디케이터(231)를 선택하는 사용자 입력 신호에 따라서, 메모리 어드레스를 공통적으로 이용하는 적어도 하나의 다른 쓰레드에 대한 정보를 표시할 수 있다. 상세하게는, 제1 인디케이터(231)를 선택하는 사용자 입력 신호에 따라서, 해당 에러가 발생할 때 관련있는 쓰레드들 및 해당 쓰레드 내에서 관련있는 정보들이 화면에 나타날 수 있다. 해당 쓰레드에 관련된 정보는 메모리 어드레스, 소스 코드 위치, 에러 발생시간 등을 포함할 수 있다. 2개 이상의 쓰레드가 표시될 때, 각 쓰레드에서의 쓰레드에 관련된 정보 사이의 관계가 화살표 등으로 함께 표시될 수 있다. 이때, 에러와 관계없는 쓰레드 정보 및 메모리 어드레스는 표시되지 않는다.
또한, 에러가 발생된 시간을 나타내는 제2 인디케이터(232)를 선택하는 사용자 입력 신호에 따라서, 에러가 속한 함수를 나타내고, 에러가 함수를 호출한 또 다른 함수가 있는 경우, 또 다른 함수를 나타낼 수 있다. 또한, 함수를 호출한 또 다른 함수가 다른 쓰레드에서 호출된 함수인 경우, 다른 쓰레드에 대한 정보가 추가적으로 표시될 수 있다.
또한, 쓰레드가 동작되는 프로세서의 식별 항목을 나타내는 제3 인디케이터(240)를 선택하는 사용자 입력 신호에 따라서, 프로세서에서 실행되고 있는 적어도 하나의 다른 쓰레드에 대한 정보가 표시될 수 있다.
이와 같이, 에러에 관한 정보 항목에 대한 인디케이터를 제공하고, 인디케이터 선택에 따른 상세 정보를 제공함으로써, 사용자는 에러 정보를 단계적 또는 순차적으로 손쉽게 리트레이스할 수 있다.
이하에서, 각 인디케이터의 타입에 따라 추가적으로 제공되는 비주얼 인터페이스에 대하여 도 3 내지 도 5를 참조하여 설명한다.
도 3은 도 2의 화면에서 제1 인디케이터 선택에 따라 제공되는 추가적인 비주얼 인터페이스 제공 화면의 일 예를 나타내는 도면이다.
도 2와 비주얼 인터페이스 제공 화면(200)에서, 쓰레드 11(230)의 에러가 발생된 메모리 어드레스에 대응하는 인디케이터(231)를 선택하는 사용자 입력 신호가 수신되면, 쓰레드 11(230)에 대한 정보 이외에, 메모리 어드레스를 공통적으로 이용하는 적어도 하나의 다른 쓰레드, 도 3에서 쓰레드 12(310)에 대한 정보가 표시될 수 있다.
쓰레드 12(310)에 대한 정보로, 메모리 어드레스를 나타내는 인디케이터(311) 및 쓰레드 12(310)가 동작하는 프로세서 식별정보를 나타내는 인디케이터(320)가 제공될 수 있다. 메모리 어드레스를 나타내는 제1 인디케이터(311) 또는 프로세서 식별정보를 나타내는 제2 인디케이터(320)가 선택되면, 해당 인디케이터에 대응되는 추가 정보가 제공될 수 있다.
도 4는 도 2의 화면에서 제2 인디케이터 선택에 따라 제공되는 추가적인 비주얼 인터페이스 제공 화면의 일 예를 나타내는 도면이다.
도 2의 비주얼 인터페이스 제공 화면(200)에서, 쓰레드 11(230)의 에러가 발생된 시간에 대응하는 제2 인디케이터(232)를 선택하는 사용자 입력 신호가 수신되면, 시간 254에서 발생한 에러의 함수가 function1임을 나타내는 정보가 "254's caller(function1); statement"로 표시될 수 있다. 여기에서, statement는 해당 함수의 소스 코드의 위치 정보를 나타낼 수 있다. 또한, 함수 function 1를 호출한 또 다른 함수가 함수 function2임을 나타내는 정보가 "f1's caller(function2); statement"로 표시될 수 있다. 이와 같은 에러가 발생한 함수에 대한 정보는 도 4에 도시된 바와 같이 해당 에러가 속한 함수 및 해당 함수를 호출한 또 다른 함수들이 순서대로 스택 형태로 제공될 수 있다.
함수 function2를 호출한 쓰레드가 쓰레드 11(230)와 다른 쓰레드, 예를 들어, 도 4에 도시된 바와 같이, 쓰레드 13(410)인 경우, 쓰레드 13(410)에 대한 정보가 추가적으로 표시될 수 있다. 물론, 쓰레드 13(410)에서 에러가 발생한 시간 정보를 나타내는 인디케이터(도시되지 않음)가 제공될 수 있다. 제공된 인디케이터를 선택하는 사용자 입력 신호에 따라, 쓰레드 13(410)를 부른 또 다른 함수가 있는 경우, 또 다른 함수에 대한 정보가 f1's caller(function2)에 대한 스택 정보 위에 추가로 표시될 수 있으며, 이와 같은 작업은 root(main) 함수에 이를 때까지 반복될 수 있다.
도 5는 도 2의 화면에서 제3 인디케이터 선택에 따라 제공되는 추가적인 비주얼 인터페이스 제공 화면의 일 예를 나타내는 도면이다.
도 2와 비주얼 인터페이스 제공 화면(200)에서, 쓰레드 11(230)의 프로세서 식별 정보를 나타내는 제3 인디케이터(240)를 선택하는 사용자 입력 신호가 수신되면, 인디케이터(240)가 나타내는 프로세서 또는 코어에서 수행하고 있는 다른 쓰레드들 즉, 도 5에서 쓰레드 14(510) 및 쓰레드 15(520)를 추가적으로 표시하는 비주얼 인터페이스가 제공될 수 있다.
도 6은 멀티 쓰레드에서 발생한 에러 정보 제공을 위한 비주얼 인터페이스 제공 장치의 구성의 일 예를 나타내는 도면이다.
멀티 쓰레드 에러 정보 제공을 위한 비주얼 인터페이스 제공 장치(600)는 멀티 쓰레드 에러 체킹부(610), 마크업 언어 파일 생성부(620) 및 비주얼 인터페이스 제공부(630)를 포함할 수 있다.
멀티 쓰레드 에러 체킹부(610)는 프로그램 코드를 멀티 쓰레드로 처리하는 과정에서 발생되는 에러를 체크한다. 상세하게는, 멀티 쓰레드 에러 체킹부(610)는 프로그래머의 설계의 실수나 미처 생각하지 못한 변수에 의해서, 프로그래머의 의도와 다르게 비정상적이거나 의도치 않은 프로그램의 동작을 분석하기 위한 다양한 프로파일링(profiling)을 수행하도록 구성될 수 있다.
일 예로, 멀티 쓰레드 에러 체킹부(610)는 바이너리 인스트루먼테이션(binary instrumentation)을 수행하는 장치로 구현될 수 있다. 인스트루먼테이션 방법 중 바이너리 인스트루먼테이션은 인스트루먼테이션이 실행될 애플리케이션의 컴파일된 바이너리 코드가 인스트루먼테이션 코드로 수정되어, 인스트루먼테이션 코드가 애플리케이션의 일부로서 실행되는 방법이다. 인스트루먼테이션 코드는 애플리케이션의 실행 동안 발생하는 동작들 또는 이벤트들에 대한 정보를 얻기 위해 이용되는 명령어들의 세트이다. 명령어들의 세트는 하나 이상의 명령어를 의미한다.
멀티 쓰레드 에러 체킹부(610)는 바이너리 형태의 소스 코드를 입력받아서, 일 실시에에 따른 비주얼 인터페이스를 제공하는데 필요한 정보를 포함하는 에러 로그를 생성할 수 있다. 에러 로그는 멀티 쓰레드 에러 체킹부(610)에서 인스트루먼테이션 등을 통해 검출되고, 분석된 내용들로서, 에러 타입, 에러 발생 시간, 에러 어드레스(예를 들어, 메모리 어드레스, 코드 위치) 관련 변수 이름, 및 에러 발생시의 콜 스택 정보 등을 포함할 수 있다.
마크업 언어 파일 생성부(620)는 에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의(Document Type Definition)에 따라, 에러 로그 정보를 마크업 언어 파일로 생성한다. 미리 설정된 문서 형식 정의는 비주얼 인터페이스를 나타내는데 필요한 정보 항목을 정의하고, 정의된 정보 항목에 들어갈 수 있는 정보의 종류 및 형태 등을 정의한 문서로 표현될 수 있다. 문서 형식 정의는 에러 타입 등의 기준에 따라 여러 개가 정의될 수 있다.
미리 설정된 문서 형식 정의는, 쓰레드에 대한 일반 정보 및 쓰레드에서 발생된 에러에 관한 에러 정보를 나타내는 적어도 하나의 항목 및 다른 마크업 언어 파일로의 연결 정보를 포함할 수 있다. 여기에서, 정보 항목은 에러가 발생된 쓰레드에 대하여, <쓰레드 식별 정보>, <쓰레드의 라이프 타임>, <쓰레드가 할당된 프로세서 식별 정보>, <쓰레드가 이용하는 적어도 하나의 메모리 어드레스>, <메모리 어드레스를 가리키는 변수 이름>, <콜 스택 정보>, <쓰레드 사이의 관계 정보> 등을 포함하는 일반 쓰레드 정보 및 <쓰레드에서 에러가 발생된 메모리 어드레스>, <에러 발생 시간>, 및 <쓰레드가 동작되는 프로세서 식별 정보> 등의 에러 정보가 < > 형태의 식별 태그로 표현될 수 있다. 또한, 미리 설정된 문서 형식 정의는, 에러 정보의 개요 정보를 제공하는 문서 형식 정의 및 에러 정보의 상세 정보를 제공하는 문서 형식 정의를 포함할 수 있다.
마크업 언어 파일 생성부(620)는 에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의에 따라, 문서 형식 정의에서 정의하는 정보 항목에 대응하는 데이터를 에러 로그로부터 추출하여 정보 항목에 대응하는 데이터를 획득함으로써 마크업 언어 형식의 문서를 생성할 수 있다. XML(extensible markup language)과 같은 마크업 언어 형식의 문서에는, 비주얼 인터페이스 제공부(630)에서 표시할 정보 항목을 그래픽적으로 표현하는 다양한 비주얼 정보가 더 포함될 수 있다.
마크업 언어 파일 생성부(620)는 비주얼 인터페이스 제공부(630)에서 초기 화면으로 제공되거나 주로 이용되는 문서 형식 정의를 이용하여 마크업 언어 파일을 생성할 수 있다. 마크업 언어 파일 생성부(620)는 처음부터 가지고 있는 모든 문서 형식 정의에 에러 로그 정보를 적용하여 마크업 언어 파일을 미리 생성할 필요가 없으며, 사용자 입력 신호에 따라 요청되는 마크업 언어 파일을 실시간으로 생성할 수 있다.
비주얼 인터페이스 제공부(630)는 마크업 언어 파일을 렌더링하여 비주얼 인터페이스를 제공한다. 비주얼 인터페이스 제공부(630)는 마크업 언어 파일에 포함된 일반 정보와 에러 정보를 도 1 내지 도 5에 도시한 바와 같이 비주얼 인터페이스 화면으로 구성하여 표시 장치로 출력할 수 있다.
비주얼 인터페이스 제공부(630)는 도 1 내지 도 5를 참조하여 설명한 바와 같이, 에러가 발생한 적어도 하나의 쓰레드에 대한 정보를 제1 축상에 배열하고, 적어도 하나의 쓰레드가 수행된 시간을 제1 축과 다른 제2 축상에 표시할 수 있다.
비주얼 인터페이스 제공부(630)는 하나의 쓰레드에서 에러가 발생과 관련된 정보와 관련된 적어도 하나의 정보 항목에 대하여 각각 사용자 입력에 의해 선택가능하도록 적어도 하나의 인디케이터를 제공할 수 있다. 또한, 비주얼 인터페이스 제공부(630)는 인디케이터를 선택하는 사용자 입력 신호에 따라, 인디케이터가 나타내는 정보 항목에 대한 상세 정보를 포함하는 마크업 언어 파일을 로딩하여 다른 비주얼 인터페이스를 제공하도록 구성될 수 있다.
사용자 입력 신호에 따라 선택된 인디케이터가 나타내는 정보 항목에 대한 상세 정보를 포함하는 마크업 언어 파일이 미리 생성되어 있지 않은 경우, 마크업 언어 파일 생성부(620)는 사용자 입력 신호에 따라 해당 마크업 언어 파일을 생성할 수 있다. 여기에서, 인디케이터가 나타내는 정보 항목에 대한 상세 정보를 포함하는 마크업 언어 파일을 로딩하는 것은, 별도로 생성된 상세 정보에 대한 마크업 언어 파일을 로딩하는 것뿐만 아니라, 현재 처리하고 있는 마크업 언어 파일 중 비주얼 인터페이스로 표현되지 않은 다른 부분의 정보를 로딩하는 것을 포함하는 것으로, 인디케이터를 선택하는 사용자 입력 신호에 따라 추가적인 비주얼 인터페이스를 제공하는 구성은 구현 예에 따라 다양한 방법으로 수행될 수 있다.
사용자 입력 신호에 따라 마크업 언어 파일 생성부(620) 및 비주얼 인터페이스 제공부(630)가 동작하여, 에러가 발생된 메모리 어드레스를 나타내는 제1 인디케이터를 선택하는 사용자 입력 신호에 따라서, 메모리 어드레스를 공통적으로 이 용하는 적어도 하나의 다른 쓰레드에 대한 정보가 표시될 수 있다. 에러가 발생된 시간을 나타내는 제2 인디케이터를 선택하는 사용자 입력 신호에 따라서, 에러가 속한 함수 및 함수를 호출한 또 다른 함수가 표시될 수 있다. 이 경우, 함수를 호출한 또 다른 함수가 다른 쓰레드에서 호출된 함수인 경우, 다른 쓰레드에 대한 정보가 표시될 수 있다. 또한, 쓰레드가 동작되는 프로세서의 식별 항목을 나타내는 제3 인디케이터를 선택하는 사용자 입력 신호에 따라서, 프로세서에서 실행되고 있는 적어도 하나의 다른 쓰레드에 대한 정보가 표시될 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
도 1은 멀티 쓰레드에서 발생한 에러 정보 제공을 위한 비주얼 인터페이스의 기본 형식의 일 예를 나타내는 도면이다.
도 2는 멀티 쓰레드에서 발생한 에러 정보 제공을 위한 비주얼 인터페이스의 제공 화면의 일 예를 나타내는 도면이다.
도 3은 도 2의 화면에서 제1 인디케이터 선택에 따라 제공되는 추가적인 비주얼 인터페이스 제공 화면의 일 예를 나타내는 도면이다.
도 4는 도 2의 화면에서 제2 인디케이터 선택에 따라 제공되는 추가적인 비주얼 인터페이스 제공 화면의 일 예를 나타내는 도면이다.
도 5는 도 2의 화면에서 제3 인디케이터 선택에 따라 제공되는 추가적인 비주얼 인터페이스 제공 화면의 일 예를 나타내는 도면이다.
도 6은 멀티 쓰레드에서 발생한 에러 정보 제공을 위한 비주얼 인터페이스 제공 장치의 구성의 일 예를 나타내는 도면이다.

Claims (17)

  1. 멀티 쓰레드에서 발생한 에러 정보 제공 방법으로서,
    프로그램 코드를 멀티 쓰레드로 처리하는 과정에서 발생되는 적어도 하나의 에러에 대한 에러 로그 정보를 생성하는 단계;
    에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의에 따라, 상기 에러 로그 정보를 마크업 언어 파일로 생성하는 단계; 및
    상기 마크업 언어 파일을 렌더링하여, 에러가 발생한 쓰레드에 대한 일반 정보 및 상기 쓰레드에서 발생된 에러에 관한 에러 정보를 포함하는 적어도 하나의 쓰레드에 대한 정보 및 상기 적어도 하나의 쓰레드가 수행된 시간을 포함하는 비주얼 인터페이스를 제공하는 단계를 포함하는 에러 정보 제공 방법.
  2. 제1항에 있어서,
    상기 미리 설정된 문서 형식 정의는,
    상기 쓰레드에 대한 일반 정보 및 상기 쓰레드에서 발생된 에러에 관한 에러 정보를 나타내는 적어도 하나의 정보 항목 및 다른 마크업 언어 파일로의 연결 정보를 포함하는 에러 정보 제공 방법.
  3. 제1항에 있어서,
    상기 쓰레드에 대한 일반 정보는,
    쓰레드 식별 정보, 쓰레드 라이프 타임 및 쓰레드가 할당된 프로세서 식별 정보, 쓰레드가 이용하는 적어도 하나의 메모리 어드레스, 상기 메모리 어드레스를 가리키는 변수 이름, 콜 스택 정보 및 쓰레드 간의 관계 정보 중 적어도 하나를 포함하는 에러 정보 제공 방법.
  4. 제1항에 있어서,
    상기 에러 정보는,
    상기 쓰레드에 대한 에러 타입, 에러 발생 시간 및 에러가 발생된 메모리 어드레스 중 적어도 하나를 포함하는 에러 정보 제공 방법.
  5. 제1항에 있어서,
    상기 비주얼 인터페이스를 제공하는 단계는,
    상기 에러가 발생한 적어도 하나의 쓰레드에 대한 정보를 제1 축상에 배열하는 단계; 및
    상기 적어도 하나의 쓰레드가 수행된 시간을 상기 제1 축과 다른 제2 축상에 표시하는 단계를 포함하는 에러 정보 제공 방법.
  6. 제1항에 있어서,
    각각 사용자 입력에 의해 선택가능하도록 구성된 상기 에러가 발생한 적어도 하나의 쓰레드에 대한 정보 항목을 나타내는 적어도 하나의 인디케이터를 제공하는 단계; 및
    상기 적어도 하나의 인디케이터 중 하나의 인디케이터를 선택하는 사용자 입력 신호에 따라, 상기 선택된 인디케이터와 연결되며, 상기 인디케이터가 나타내는 정보 항목에 관한 상세 정보를 포함하는 마크업 언어 파일을 로딩하여 다른 비주얼 인터페이스를 제공하는 단계를 더 포함하는 에러 정보 제공 방법.
  7. 제6항에 있어서,
    상기 적어도 하나의 인디케이터는,
    상기 쓰레드에서 에러가 발생된 메모리 어드레스를 나타내는 제1 인디케이터, 상기 쓰레드에서 에러가 발생된 시간을 나타내는 제2 인디케이터, 및 쓰레드가 동작되는 프로세서의 식별 정보를 나타내는 제3 인디케이터 중 적어도 하나를 포함하는 에러 정보 제공 방법.
  8. 제7항에 있어서,
    상기 제1 인디케이터를 선택하는 사용자 입력 신호에 따라서, 상기 메모리 어드레스를 공통적으로 이용하는 적어도 하나의 다른 쓰레드에 대한 정보를 표시하는 단계를 더 포함하는 에러 정보 제공 방법.
  9. 제7항에 있어서,
    상기 제2 인디케이터를 선택하는 사용자 입력 신호에 따라서, 상기 에러가 속한 함수 및 상기 함수를 호출한 또 다른 함수를 표시하는 단계; 및
    상기 함수를 호출한 또 다른 함수가 다른 쓰레드에서 호출된 함수인 경우, 상기 다른 쓰레드에 대한 정보를 표시하는 단계를 더 포함하는 에러 정보 제공 방법.
  10. 제7항에 있어서,
    상기 제3 인디케이터를 선택하는 사용자 입력 신호에 따라서, 상기 프로세서에서 실행되고 있는 적어도 하나의 다른 쓰레드에 대한 정보를 표시하는 단계를 더 포함하는 에러 정보 제공 방법.
  11. 프로그램 코드를 멀티 쓰레드로 처리하는 과정에서 발생되는 적어도 하나의 에러에 대한 에러 로그 정보를 생성하는 에러 체킹부;
    에러에 대한 비주얼 인터페이스를 나타내는데 이용되는 적어도 하나의 정보 항목을 정의한 미리 설정된 문서 형식 정의에 따라, 상기 에러 로그 정보를 마크업 언어 파일로 생성하는 마크업 언어 파일 생성부; 및
    상기 마크업 언어 파일을 렌더링하여, 에러가 발생한 쓰레드에 대한 일반 정보 및 상기 쓰레드에서 발생된 에러에 관한 에러 정보를 포함하는 적어도 하나의 쓰레드에 대한 정보 및 상기 적어도 하나의 쓰레드가 수행된 시간을 포함하는 비주얼 인터페이스를 제공하는 비주얼 인터페이스 제공부를 포함하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
  12. 제11항에 있어서,
    상기 미리 설정된 문서 형식 정의는,
    상기 쓰레드에 대한 일반 정보 및 상기 쓰레드에서 발생된 에러에 관한 에러 정보를 나타내는 적어도 하나의 정보 항목 및 다른 마크업 언어 파일로의 연결 정보를 포함하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
  13. 제11항에 있어서,
    상기 비주얼 인터페이스 제공부는, 각각 사용자 입력에 의해 선택가능하도록 구성된 상기 에러가 발생한 적어도 하나의 쓰레드에 대한 정보 항목을 나타내는 적어도 하나의 인디케이터를 제공하고,
    상기 적어도 하나의 인디케이터 중 하나의 인디케이터를 선택하는 사용자 입력 신호에 따라, 상기 선택된 인디케이터와 연결되며, 상기 인디케이터가 나타내는 정보 항목에 관한 상세 정보를 포함하는 마크업 언어 파일을 로딩하여 다른 비주얼 인터페이스를 제공하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
  14. 제13항에 있어서,
    상기 적어도 하나의 인디케이터는,
    상기 쓰레드에서 에러가 발생된 메모리 어드레스를 나타내는 제1 인디케이 터, 상기 쓰레드에서 에러가 발생된 시간을 나타내는 제2 인디케이터, 및 쓰레드가 동작되는 프로세서 식별 정보를 나타내는 제3 인디케이터 중 적어도 하나를 포함하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
  15. 제14항에 있어서,
    상기 비주얼 인터페이스 제공부는,
    상기 제1 인디케이터를 선택하는 사용자 입력 신호에 따라서, 상기 메모리 어드레스를 공통적으로 이용하는 적어도 하나의 다른 쓰레드에 대한 정보를 표시하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
  16. 제14항에 있어서,
    상기 비주얼 인터페이스 제공부는,
    상기 제2 인디케이터를 선택하는 사용자 입력 신호에 따라서, 상기 에러가 속한 함수 및 상기 함수를 호출한 또 다른 함수를 표시하고, 상기 함수를 호출한 또 다른 함수가 다른 쓰레드에서 호출된 함수인 경우, 상기 다른 쓰레드에 대한 정보를 표시하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
  17. 제14항에 있어서,
    상기 비주얼 인터페이스 제공부는, 상기 제3 인디케이터를 선택하는 사용자 입력 신호에 따라서, 상기 프로세서에서 실행되고 있는 적어도 하나의 다른 쓰레드 에 대한 정보를 표시하는 멀티 쓰레드에서 발생한 에러 정보 제공 장치.
KR1020090121899A 2009-12-09 2009-12-09 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법 KR20110065067A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090121899A KR20110065067A (ko) 2009-12-09 2009-12-09 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법
US12/896,771 US20110138236A1 (en) 2009-12-09 2010-10-01 Apparatus and method for providing visual interface for information of error generated in multithread testing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090121899A KR20110065067A (ko) 2009-12-09 2009-12-09 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20110065067A true KR20110065067A (ko) 2011-06-15

Family

ID=44083203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090121899A KR20110065067A (ko) 2009-12-09 2009-12-09 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법

Country Status (2)

Country Link
US (1) US20110138236A1 (ko)
KR (1) KR20110065067A (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112677B2 (en) * 2010-02-26 2012-02-07 UltraSoC Technologies Limited Method of debugging multiple processes
US8862942B2 (en) * 2010-12-23 2014-10-14 Intel Corporation Method of system for detecting abnormal interleavings in concurrent programs
WO2013030612A1 (en) * 2011-09-02 2013-03-07 Intel Corporation Data race analysis with improved detection filtering
CN102981809B (zh) * 2012-12-28 2016-05-11 上海创图网络科技发展有限公司 一种多线程环境下基于消息的无同步3d渲染方法
US10725889B2 (en) * 2013-08-28 2020-07-28 Micro Focus Llc Testing multi-threaded applications
JP6002856B2 (ja) * 2013-11-08 2016-10-05 株式会社日立製作所 監視システム、及び、監視方法
US20180341494A1 (en) * 2017-05-26 2018-11-29 Intel Corporation Accelerating network security monitoring
WO2019000233A1 (zh) * 2017-06-27 2019-01-03 华为技术有限公司 一种卡顿检测方法及装置
CN107480039B (zh) * 2017-09-22 2020-12-04 郑州云海信息技术有限公司 一种分布式存储系统的小文件读写性能测试方法及装置
CN109542719B (zh) * 2018-10-26 2022-05-13 金蝶软件(中国)有限公司 线程状态监控方法、装置、计算机设备和存储介质
WO2020094815A1 (fr) * 2018-11-07 2020-05-14 Scaledynamics Procédé de représentation dynamique d'allocation de ressources, dispositif et programme d'ordinateur correspondant.
US10725846B1 (en) * 2019-04-02 2020-07-28 Sap Se Reference debugging using associative registry

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593940B1 (en) * 1998-12-23 2003-07-15 Intel Corporation Method for finding errors in multithreaded applications
US6611276B1 (en) * 1999-08-31 2003-08-26 Intel Corporation Graphical user interface that displays operation of processor threads over time
US7376937B1 (en) * 2001-05-31 2008-05-20 Oracle International Corporation Method and mechanism for using a meta-language to define and analyze traces
US7380239B1 (en) * 2001-05-31 2008-05-27 Oracle International Corporation Method and mechanism for diagnosing computer applications using traces
US7512954B2 (en) * 2002-07-29 2009-03-31 Oracle International Corporation Method and mechanism for debugging a series of related events within a computer system
US7216336B1 (en) * 2003-02-28 2007-05-08 Emc Corporation Sequential event monitoring module
CA2447163A1 (en) * 2003-05-30 2004-11-30 Bruno Braeen A visual debugging interface
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
EP2011004B1 (en) * 2006-04-04 2019-01-02 TIBCO Software Inc. Method and system for providing a visual debugger for an interpreted statistical language
US7849446B2 (en) * 2006-06-09 2010-12-07 Oracle America, Inc. Replay debugging
US7926035B2 (en) * 2007-04-24 2011-04-12 Microsoft Corporation Testing multi-thread software using prioritized context switch limits
US8595702B2 (en) * 2009-03-13 2013-11-26 Microsoft Corporation Simultaneously displaying multiple call stacks in an interactive debugger

Also Published As

Publication number Publication date
US20110138236A1 (en) 2011-06-09

Similar Documents

Publication Publication Date Title
KR20110065067A (ko) 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법
US10621068B2 (en) Software code debugger for quick detection of error root causes
US8087002B2 (en) Method and system for providing a visual debugger for an interpreted statistical language
US9244815B2 (en) Integrated debugger and code coverage tool
JP5307802B2 (ja) 外部デバッグのインフラストラクチャを使用するインプロセスのデバッグ
US8392930B2 (en) Resource contention log navigation with thread view and resource view pivoting via user selections
US8645912B2 (en) System and method for use in replaying software application events
US8336032B2 (en) Implementing enhanced template debug
US9411616B2 (en) Classloader/instrumentation approach for invoking non-bound libraries
US8418149B2 (en) Differential comparison system and method
US8769497B2 (en) System and method for use in indicating execution of application code
KR20070121649A (ko) 소프트웨어 프로그램의 성능분석 방법 및 장치
US8561032B2 (en) Visualizing thread life time in eclipse
US9361205B2 (en) Code coverage framework
US6131109A (en) Multitask processor, a multitask processing method, a multitask processing display method and a storage medium for processing by correlating task and object
JP2009237610A (ja) コード変換装置及びコード変換方法
KR101449201B1 (ko) 철강 공정용 소프트웨어 자동 테스트 시스템
US20120023483A1 (en) System and method for use in indicating execution of application code
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
US20080276187A1 (en) Iconic Programming System with Disabling and Enabling of Dependent Objects
Melo et al. On a feature-oriented characterization of exception flows in software product lines
Kraft Stop Guessing
Wielenga et al. Debugging
King Understanding Thread Interactions

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid