KR101060181B1 - 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법 - Google Patents

원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법 Download PDF

Info

Publication number
KR101060181B1
KR101060181B1 KR1020090071264A KR20090071264A KR101060181B1 KR 101060181 B1 KR101060181 B1 KR 101060181B1 KR 1020090071264 A KR1020090071264 A KR 1020090071264A KR 20090071264 A KR20090071264 A KR 20090071264A KR 101060181 B1 KR101060181 B1 KR 101060181B1
Authority
KR
South Korea
Prior art keywords
debugging
debugger
software
server
web
Prior art date
Application number
KR1020090071264A
Other languages
English (en)
Other versions
KR20110013679A (ko
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 KR1020090071264A priority Critical patent/KR101060181B1/ko
Priority to US12/667,234 priority patent/US8589881B2/en
Priority to PCT/KR2009/004627 priority patent/WO2011016595A1/ko
Publication of KR20110013679A publication Critical patent/KR20110013679A/ko
Application granted granted Critical
Publication of KR101060181B1 publication Critical patent/KR101060181B1/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

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

Abstract

원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법을 개시한다. 웹 기반 소프트웨어 디버깅 장치는 사용자가 원격의 타겟 시스템에서 수행되는 소프트웨어에 대한 디버깅 서비스를 요청하고 상기 소프트웨어의 디버깅 결과를 확인할 수 있는 웹 브라우저를 제공하는 웹 인터페이스; 상기 웹 인터페이스를 통해 상기 소프트웨어에 대한 디버깅 서비스 요청을 수신하고 상기 소프트웨어의 디버깅 결과를 상기 웹 인터페이스로 제공하는 디버거 클라이언트; 및, 상기 디버거 클라이언트로부터 상기 디버깅 서비스 요청을 수신하고 상기 디버깅 서비스 요청에 따라 상기 타겟 시스템과의 연결을 통해 상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 디버거 서버를 포함한다.
디버거(debugger), 디버깅, 웹 기반, 원격, 소프트웨어, GDB(GNU source-level debugger), GDB Server

Description

원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법{WEB BASED SOFTWARE DEBUGGER FOR REMOTE DEBUGGING}
본 발명의 실시예들은 웹 브라우저의 인터페이스를 통해 원격의 소프트웨어를 디버깅할 수 있는 디버깅 기술에 관한 것이다.
일반적으로, 디버거(Debugger)는 프로그램 개발 과정에서 사용되는 도구로서, 프로그램을 실행하고 그 상태를 조사 및 변경하며 중단점을 설정하도록 하여 프로그램 내에 포함된 구문적 오류(syntatic error) 또는 의미적 오류(semantic error)를 쉽게 찾을 수 있도록 도와주는 기능을 한다. 특히, 프로그램의 의미적 오류의 경우에 프로그램 개발 과정에서 개발자가 범한 논리적인 오류로서 이를 발견하기 위해서는 프로그램을 추적해 보아야 한다.
여기서, 프로그램의 추적이라고 하는 것은 프로그램을 라인 또는 명령어 단위로 하나씩 실행해 가면서 그 중간 결과들을 살펴보는 것을 말하며 디버거가 제공하는 가장 중요한 기능들 가운데 하나이다. 즉, 디버거는 프로그램을 소스 코드(source code)의 라인 단위로 실행할 수 있는데 이것은 컴퓨터의 CPU로 하여금 한 라인 수행 후 개발자의 다음 명령을 기다리도록 만드는 것을 의미한다.
이와 같은 디버거를 이용한 프로그램의 디버깅은 크게 프로그램의 오류 인지 단계, 오류의 위치 발견 단계, 오류의 원인 발견 단계, 오류의 수정 단계와 같은 4단계로 구성된다. 이를 위해 디버거는 프로그램의 실행, 프로그램의 추적, 중단점(breakpoint) 설정, 변수 시험, 변수 변경, 현재 위치 보고 등의 기본적인 기능을 제공한다.
이와 같이 디버거가 소망하는 기능을 수행하기 위해서는 컴파일러는 디버깅할 원시 파일을 디버거에게 기술하기 위한 디버깅 정보를 생성한다. 이러한 디버깅 정보에는 프로그램의 구조를 나타내는 정보와 프로그램 내부의 심벌에 대한 정보로 크게 나눌 수 있다. 여기서, 프로그램 구조에 대한 정보에는 원시 파일, 라인 정보, 모듈 이름, 모듈 범위, 원시 파일의 이름과 경로, 블록 정보, 프로시저 이름과 타입 등이 있다. 또한, 프로그램 내부의 심벌에 대한 정보에는 심벌 모드, 각 모드의 정보, 심벌 주소 등이 있다.
한편, 일반적인 원시 코드 디버깅에 사용되는 기본 기능들(프로그램 실행 제어 기능, 메모리의 내용 조회 및 변경 기능, 레지스터 내용 조회 및 변경 기능, 중단점의 설정 및 해제 기능 등)에 대해 GDB(GNU Source-Level Debugger) 및 GDNServer(GNU Source-Level Debugger Server)를 이용해 원격의 소프트웨어를 디버깅할 수 있다.
GDB는 컴퓨터 프로그램의 실행을 추적하고 수정할 수 있는 많은 기능들을 제공한다. 사용자는 프로그램의 내부 변수들의 값을 모니터링 하거나 변경할 수 있으며, 프로그램의 일반적인 실행 과정과 독립적으로 함수를 호출할 수도 있다.
또한, GDB는 임베디드 시스템을 디버깅할 때 사용되는 원격 모드를 지원한다. 원격 디버깅은 GDB가 한 머신 상에서 동작하고 디버그 할 프로그램은 다른 머신 상에서 동작하는 것을 말한다. GDB는 GDB 프로토콜을 알고 있는 원격지의 스터브(stub)와 직렬 포트 혹은 TCP/IP를 통해 통신할 수 있다. 이 원격 디버깅 모드는 리눅스 커널에 사용되는 소스-레벨 디버거인 KGDB에서도 사용된다. KGDB를 사용하면 커널 개발자는 일반 응용 프로그램과 마찬가지로 커널을 디버깅할 수 있다. KGDB는 커널 코드 내에 중단점을 삽입하는 것이 가능하며, 코드를 한 단계씩 실행(step)시키거나, 변수의 값을 관찰하는 것이 가능하다. 하드웨어 디버깅 레지스터를 포함하고 있는 프로세서에서는 감시점(watchpoint)을 설정하여 특정 메모리 주소가 접근되거나 실행될 때 중단점을 설정할 수 있다. KGDB는 디버깅할 머신에 직렬 케이블이나 이더넷을 통해 연결될 또 다른 머신을 필요로 한다. FreeBSD에서는 Firewire DMA를 이용한 디버깅도 가능하다.
그러나, GDB와 GDBServer를 이용한 원격 디버깅은 GDB가 동작하는 호스트 컴퓨터가 반드시 GDB가 운용 가능한 환경이어야 하기 때문에 디버깅을 수행하기 전 호스트 컴퓨터에 대한 환경 설정이 필요하다는 점을 생각했을 때 효과적으로 디버깅을 할 수 없고 디버깅을 수행함에 있어서 공간적인 제약이 발생한다는 문제점이 있다. 또한, GDB에서 타겟 시스템 디버깅시 기본적으로 제공하는 사용자 인터페이스가 CLI(Command Line Interface)라는 점은 익숙하지 않은 사용자에게 불편함을 줄 수 있다.
본 발명의 일실시예는 원격의 소프트웨어를 디버깅 함에 있어서 사용자의 공간적 제약이나 개발 환경에 의존적이지 않는 웹 기반 소프트웨어 디버깅 장치 및 그 방법을 제공한다.
본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 장치는 사용자가 원격의 타겟 시스템에서 수행되는 소프트웨어에 대한 디버깅 서비스를 요청하고 상기 소프트웨어의 디버깅 결과를 확인할 수 있는 웹 브라우저를 제공하는 웹 인터페이스; 상기 웹 인터페이스를 통해 상기 소프트웨어에 대한 디버깅 서비스 요청을 수신하고 상기 소프트웨어의 디버깅 결과를 상기 웹 인터페이스로 제공하는 디버거 클라이언트; 및, 상기 디버거 클라이언트로부터 상기 디버깅 서비스 요청을 수신하고 상기 디버깅 서비스 요청에 따라 상기 타겟 시스템과의 연결을 통해 상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 디버거 서버를 포함한다.
본 발명의 일실시예에서 상기 디버거 서버는 시리얼 통신 또는 TCP/IP 통신을 통해 상기 타겟 시스템과의 통신 경로를 설정한다.
본 발명의 일실시예에서 상기 디버거 서버는 상기 디버거 클라이언트로부터 디버깅 서비스 요청을 수신하고 상기 타겟 시스템으로부터 상기 디버깅 결과를 수신하는 서버 관리자와, 상기 수신된 디버깅 서비스 요청과 디버깅 결과를 GDB(GNU Source-Level Debugger)의 명령어 형식으로 변환하는 정보 변환기 관리자와, 상기 변환된 명령어에 따라 상기 소프트웨어의 디버깅과 관련된 전반의 컨트롤을 위한 상기 GDB를 구동하는 프로세스 컨트롤러를 포함한다.
본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 방법은 웹 인터페이스, 디버거 클라이언트, 디버거 서버로 구성된 디버깅 장치의 웹 기반 소프트웨어 디버깅 방법에 있어서, 상기 웹 인터페이스에서 웹 브라우저를 통해 원격의 타겟 시스템에서 수행되는 소프트웨어에 대한 사용자의 디버깅 서비스 요청을 수신하는 단계; 상기 디버거 클라이언트에서 상기 소프트웨어에 대한 사용자의 디버깅 서비스 요청을 상기 디버거 서버로 전송하는 단계; 및, 상기 디버거 서버에서 상기 디버깅 서비스 요청에 따라 상기 타겟 시스템과의 연결을 통해 상기 소프트웨어를 디버깅 하는 단계를 포함한다.
본 발명의 일실시예에서 상기 사용자의 디버깅 서비스 요청을 상기 디버거 서버로 전송하는 단계는, 상기 웹 브라우저가 실행되면 상기 디버거 서버로 디버깅 서비스를 위한 연결을 요청하는 단계와, 상기 디버거 서버로부터 연결 성공 응답 패킷이 수신되면 상기 디버거 서버로 상기 타겟 시스템과의 연결을 요청하는 단계와, 상기 디버거 서버로부터 상기 타겟 시스템과의 연결 성공 응답 패킷이 수신되면 상기 디버거 서버로 상기 디버깅 서비스 요청을 전송하는 단계를 포함한다.
본 발명의 일실시예에서 상기 소프트웨어를 디버깅 하는 단계는 상기 디버깅 서비스 요청에 따라 상기 타겟 시스템으로 디버깅 서비스에 대한 요청 메시지를 전송하고 GDB를 구동하는 단계를 포함하고, 이때, 상기 타겟 시스템은 상기 GDB의 구 동에 의해 상기 소프트웨어에 대한 디버깅을 수행한 후 디버깅 결과를 표준 에러(standard error)와 표준 출력(standard output)으로 상기 디버거 서버로 전송한다.
본 발명의 일실시예에 따르면, 호스트 컴퓨터를 이용한 타겟 시스템(임베디드 시스템, 개인용 컴퓨터) 등의 원격 소프트웨어 디버깅을 웹 인터페이스와 연결함으로써 타겟 시스템의 자원부족에 따른 원격 디버깅의 이점을 그대로 유지하면서 소프트웨어 개발자 및 테스터에게 편의를 향상시킬 수 있다.
본 발명의 일실시예에 따르면, 사용자는 웹 인터페이스를 통해 호스트 시스템에 접근이 가능하기 때문에 자신의 개발 환경에 구애 받지 않고 타겟 시스템에 연결해 원격 소프트웨어에 대한 디버깅을 할 수 있는 이점이 있다. 즉, 원격 소프트웨어 디버깅을 웹을 통해 수행할 수 있어 개발되는 소프트웨어의 정확성 및 신뢰성을 높이는데 기여할 수 있다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치의 구조에 대해 개략적으로 도시하고 있다.
도 1을 참조하면 본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 장치는 웹 인터페이스(10), 디버거 클라이언트(30), 디버거 서버(40)로 구성된 디버거 엔진(20)과, 그리고 디버깅 하기 위한 원격 소프트웨어(51)가 동작하는 타겟 시스템(50)을 포함한다.
웹 인터페이스(10)는 호스트 컴퓨터에서 운용되는 GDB(GNU Source-Level Debugger)가 수집한 원격 소프트웨어(51)에 대한 디버깅 결과를 웹 브라우저를 위한 인터페이스로 변환한다. 따라서, 본 발명의 일실시예는 호스트 컴퓨터에서 GDB의 인터페이스인 CLI(Command Line Interface)를 통해서 원격 소프트웨어를 디버깅 하는 것이 아니라, 웹 브라우저에서 아이디와 비밀번호를 통해 호스트 컴퓨터에 접속하여 호스트 컴퓨터의 GDB를 웹을 통해 컨트롤하고 원격 소프트웨어(51)를 디버깅하는 방식으로 바뀌는 것이다.
디버거 클라이언트(30)는 웹 인터페이스(10)를 통해 획득한 사용자의 GDB 실행 및 GDB Server의 연결, 원격 소프트웨어(51)에 대한 디버깅 서비스 요청을 디버거 서버(40)로 전달하고 호스트 시스템이나 타겟 시스템(50)이 요청에 대해 응답한 결과를 다시 웹 인터페이스(10)로 변환한다. 이를 위해서 디버거 클라이언트(30)는 웹 인터페이스(10)와의 정보 교환 역할을 담당하는 디버깅 인터페이스(31)와, 디버거 서버(40)와의 연결확립, 사용자 정보 관리 등 디버거 클라이언트(30)의 전반적인 제어를 담당하는 디버거 클라이언트 관리자(32)를 포함할 수 있다. 디버거 클라이언트 관리자(32)는 시리얼 통신 또는 TCP/IP 통신(일례로, 이더넷)을 통해 디버거 서버(40)와의 통신 경로를 연결할 수 있다.
디버거 서버(40)는 디버거 클라이언트(30)와 연결되어 디버거 클라이언트(30)로부터 디버깅 서비스 요청을 수신한 후 타겟 시스템(50)의 원격 소프트웨어(51)를 디버깅하고 컨트롤 할 수 있는 GDB를 동작시키고 GDB에 의한 디버깅 서비스 결과를 디버거 클라이언트(30)로 전송한다. 디버거 서버(40)의 전체 구조에 대해서는 도 2를 참조하여 구체적으로 설명하기로 한다.
타겟 시스템(50)은 실제 디버깅의 대상이 되는 원격 소프트웨어(51)가 동작하는 시스템을 의미한다. 타겟 시스템에는 GDB Server(52)가 동작하며 호스트 컴퓨터의 GDB와 시리얼 통신 또는 TCP/IP 통신을 통해 연결된다.
도 2는 본 발명의 일실시예에서 디버거 엔진(20)에 포함된 디버거 서버(40)의 전체 구조를 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명의 일실시예에서 디버거 서버(40)는 서버 관리자(70), 정보 변환기 관리자(80), 프로세서 컨트롤러(90)를 포함한다.
서버 관리자는(70)는 네트워크 관리자(71)와, 프로세서 관리자(72)와, 사용자 관리자(73)로 구성된다. 네트워크 관리자(71)는 다시 소켓 통신을 이용하여 디버거 클라이언트(30)로부터 서버로 프로그램 실행 제어 기능, 메모리의 내용 조회 및 변경 기능, 레지스터 내용 조회 및 변경 기능, breakpoint의 설정 및 해제 기능 등 디버깅 명령 메시지를 전송하고 그에 따른 디버깅 결과 메시지에 대한 수신을 담당한다. 프로세서 관리자(72)는 GDB 실행에 대한 프로세스 정보 및 프로세스의 현재 상태, 프로세스를 통해 얻은 원격 소프트웨어의 디버깅 결과 및 디버거 클라 이언트(30)으로부터 전송되는 사용자의 서비스 요청 정보를 처리하고, 사용자 관리자(73)는 접속한 사용자의 정보를 관리하는 기능을 담당한다.
정보 변환기 관리자(80)는 명령어 변환기(81), 표준 에러 변환기(83), 표준 출력 변환기(84), 결과 분석기(82)로 구성된다. 명령어 변환기(81)는 디버거 클라이언트(30)로부터 서버 관리자(70)가 수신한 요청 메시지를 입력으로 받아 실제 GDB 실행 후 GDB 프롬프트에서 사용되는 명령어 형식으로 변환하는 역할을 한다. 표준 에러 변환기(83)와 표준 출력 변환기(84)는 프로세스 컨트롤러(90)에서 동작하고 있는 GDB가 원격 소프트웨어를 디버깅하여 얻은 디버깅 결과를 표준 출력과 표준 에러로 전송 받으므로 이를 처리하는 변환기이다. 결과분석기(82)는 표준 에러 변환기(83)와 표준 출력 변환기(84)를 통과한 결과를 이용하여 디버깅 결과에 대한 기록을 디버깅 로그파일(44)에 남기고 서버 관리자(70)에 포함된 프로세서 관리자(72)에게 전달한다. 이때, 결과 분석기(82)로부터 디버깅 결과를 전달 받은 프로세스 관리자(72)는 사용자 관리자(73)와 네트워크 관리자(71)의 정보를 이용하여 서비스를 요청한 디버거 클라이언트(30)에게 디버깅 결과를 전송한다.
프로세스 컨트롤러(90)은 정보 변환기 관리자(80)의 명령어 변환기(81)로부터 변환된 GDB 프롬프트용 명령어를 Tx 컨트롤러(91)을 통해 전달 받아 프로세스 실행기(92)로 전달한다. 이때, 프로세스 실행기(92)는 GDB 프롬프트용 명령어를 Tx 컨트롤러(91)로부터 전달 받아 명령어의 메시지 타입을 분석하고 메시지 타입의 종류에 따라 GDB(94)로 타겟 시스템에 대한 디버깅 명령어를 전달 요청한다. 아울러, Rx 컨트롤러(91)는 상기 분석된 메시지 타입의 종류를 정보 변환기 관리자(80) 로 전달한다.
따라서, 본 발명의 일실시예는 타겟 시스템(50)과의 시리얼 통신 또는 TCP/IP 통신을 통해 사용자에게 웹 인터페이스에 의한 원격 소프트웨어 디버깅을 제공할 수 있다. 또한, 본 발명의 일실시예는 디버거 엔진(20)을 디버거 클라이언트(30)와 디버거 서버(40)로 논리적으로 구분함으로써 다수의 클라이언트로부터 디버거 서버 및 타겟 시스템으로의 연결 및 서비스 요청에 대한 응답을 처리할 수 있으며 추후에 디버거 클라이언트(30)와 디버거 서버(40)를 물리적으로 구분할 수 있는 기회를 제공한다.
도 3은 본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 방법에 있어 호스트 시스템 실행 및 타겟 시스템과의 연결 확립 과정을 설명하기 위한 도면이다. 여기서, 본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 방법은 상기한 구조의 웹 기반 소프트웨어 디버깅 장치에 의해 실행될 수 있다.
도 3을 참조하여, 호스트 시스템 실행 및 타겟 시스템과의 연결 확립에 대한 일련의 과정을 설명한다.
디버거 클라이언트는 디버깅 서비스를 위한 연결 요청을 대기(100)하다가 사용자로부터 웹 인터페이스를 통해 디버깅 서비스 요청이 수신되면 디버거 서버에 연결을 요청한다. 디버거 서버는 디버거 클라이언트로부터 연결 요청을 대기 하다가(110) 연결 요청이 수신되면 호스트 컴퓨터의 GDB 프로세스를 얻기 위한 연결을 시도한다(120). 연결이 성공하게 되면(130) 디버그 서버는 연결 응답 대기 상 태(140)에 있는 디버거 클라이언트에게 연결 성공 패킷을 전송한다. 연결이 실패한 경우 디버거 서버는 다음 연결 요청이 올 때까지 연결 요청 대기 상태(110)에서 머물게 된다. 디버거 클라이언트는 연결 응답 대기 상태(140)에서 디버거 서버로부터 연결 성공 응답 패킷을 수신하면 다시 디버거 서버에게 타겟 시스템으로의 연결 요청 패킷을 전송한다(150). 디버거 서버는 호스트 컴퓨터의 GDB 프로세스 연결 성공 응답 메시지를 전송한 뒤 GDB 서버 연결 요청 대기 상태(160)에서 머물다가 디버거 클라이언트로부터의 타겟 시스템 연결 요청 패킷을 수신 후(170) 타겟 시스템에게 GDB Server 연결 요청 메시지를 전송한다(180). 타겟 시스템은 GDB Server 연결 요청을 대기(190)하다가 메시지를 수신하면 통신 경로의 설정을 시도하고(200) 그에 따른 결과 메시지를 디버거 서버에게 통지한다. 경로 설정이 성공일 경우(210) 디버거 클라이언트에게 성공 메시지를 전송하고, 실패일 경우 GDB 서버 연결 요청 대기 상태(160)로 돌아가게 된다. 디버거 클라이언트는 연결 응답 대기 상태(220)에 있다가 통신 경로 설정 성공 메시지를 수신하면 웹 인터페이스를 통해 사용자에게 원격 디버깅을 위한 웹 기반 소프트웨어 디버거를 위한 연결 설정이 완료되었음을 알리고 일정 시간이 경과하면(230) 다시 사용자로부터의 디버깅 서비스 요청을 대기(240)한다.
도 4는 본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 방법에 있어 디버깅 서비스 요청 및 응답 과정을 설명하기 위한 도면이다. 여기서, 본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 방법은 상기한 구조의 웹 기반 소프트 웨어 디버깅 장치에 의해 실행될 수 있다.
도 4을 참조하여, 디버깅 서비스 요청 및 응답에 대한 일련의 과정을 설명한다.
디버거 클라이언트는 사용자의 디버깅 서비스 요청에 따라 디버거 서버로 디버깅 서비스를 요청한다(250). 디버거 서버는 디버거 클라이언트로부터 서비스 요청을 대기(260) 하다가 서비스 요청이 수신되면(270) 서비스 타입 분석(280)을 수행하고 타겟 시스템에게 서비스 요청 메시지를 전송한다. 타겟 시스템은 디버거 서버로부터 서비스 요청을 대기(290)하다가 올바른 서비스 타입이 수신되었을 때(300) 요청된 서비스의 기능을 수행하고(310) 서비스 결과를 디버거 서버에게 전송한다(320). 디버거 서버는 대기 상태(330)에서 타겟 시스템으로부터 서비스 결과가 수신되면 수신된 서비스 결과에 따라 서비스 타입을 분석하고(340) 서비스 타입의 분석 결과(350)에 따라 표준 에러 또는 표준 출력으로 구분하여 디버거 클라이언트에게 전송한다. 디버거 클라이언트는 디버거 서버로부터 수신한 디버깅 결과를 표준 에러 단계(360)와 표준 출력 단계(370)로 나누어 처리한 후 그 결과를 웹 인터페이스를 통하여 사용자에게 통지한다.
도 5는 본 발명의 일실시예에서 디버그 서버와 디버그 클라이언트 간의 통신 프로토콜 구조를 설명하기 위한 도면이다.
본 발명의 일실시예에서 디버거 클라이언트에서 디버거 서버로 전송되는 프로세스 실행 및 디버깅 서비스를 요청하기 위한 패킷(510)의 구조는 패킷 타 입(PacketType), 커멘드 식별번호(CommandID), 프로세스 식별번호(ProcessID), 옵션 정보(Option)로 구성된다. 또한, 디버거 서버에서 디버거 클라이언트로 전송되는 원격 소프트웨어의 디버깅 결과를 통보하기 위한 패킷의 구조는 디버깅 결과가 표준 에러일 경우(520) 패킷 타입, 커멘드 식별번호, 프로세스 식별번호, 표준 에러 값(StandardError)으로 구성되고, 표준 출력일 경우(530) 패킷 타입, 커멘드 식별번호, 프로세스 식별번호, 표준 출력 값(StandardOutput)으로 구성된다.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일실시예에 따른 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치의 구조에 대해 개략적으로 도시하고 있다.
도 2는 본 발명의 일실시예에서 디버거 엔진에 포함된 디버거 서버의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에서 호스트 시스템 실행 및 타겟 시스템과의 연결 확립 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 웹 기반 소프트웨어 디버깅 방법에 있어 디버깅 서비스 요청 및 응답 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에서 디버그 서버와 디버그 클라이언트 간의 통신 프로토콜 구조를 설명하기 위한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
10: 웹 인터페이스
30: 디버거 클라이언트
40: 디버거 서버
50: 타겟 시스템

Claims (14)

  1. 사용자가 사용하는 원격 시스템에서 수행되는 소프트웨어에 대한 디버깅 서비스를 요청하고 상기 소프트웨어의 소스 코드 및 디버깅 결과를 표시할 수 있는 웹 브라우저를 제공하는 웹 인터페이스;
    상기 웹 인터페이스를 통해 상기 소프트웨어에 대한 디버깅 서비스 요청을 수신하고 상기 소프트웨어의 디버깅 결과를 상기 웹 인터페이스로 제공하는 디버거 클라이언트; 및,
    상기 디버거 클라이언트로부터 상기 디버깅 서비스 요청을 수신하고 상기 디버깅 서비스 요청에 따라 상기 원격 시스템과의 연결을 통해 상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 디버거 서버
    를 포함하고,
    상기 디버거 클라이언트는,
    상기 디버깅 서비스 요청을 디버깅 기능이 있는 상기 디버거 서버로 송신하고 상기 디버거 서버로부터 상기 디버깅 서비스 요청에 대한 상기 소프트웨어의 디버깅 결과를 수신하며,
    상기 디버거 서버는,
    상기 디버깅 서비스 요청에 따라 상기 디버깅 기능을 실행하고 상기 디버깅 기능의 실행에 의해 상기 원격 시스템으로부터 상기 소프트웨어의 소스 코드를 디버깅한 디버깅 결과를 수신하여 상기 디버거 클라이언트로 전송하는 것
    을 특징으로 하는 웹 기반 소프트웨어 디버깅 장치.
  2. 제1항에 있어서,
    상기 디버거 클라이언트는,
    상기 사용자와의 정보 교환을 담당하는 디버깅 인터페이스와,
    시리얼 통신 또는 TCP/IP 통신을 통해 상기 디버거 서버와의 연결을 담당하는 디버거 클라이언트 관리자
    를 포함하는, 웹 기반 소프트웨어 디버깅 장치.
  3. 제1항에 있어서,
    상기 디버거 서버는,
    시리얼 통신 또는 TCP/IP 통신을 통해 상기 원격 시스템과의 통신 경로를 설정하는, 웹 기반 소프트웨어 디버깅 장치.
  4. 제1항에 있어서,
    상기 디버거 서버는,
    상기 디버거 클라이언트로부터 디버깅 서비스 요청을 수신하고 상기 원격 시스템으로부터 상기 디버깅 결과를 수신하는 서버 관리자와,
    상기 수신된 디버깅 서비스 요청과 디버깅 결과를 GDB(GNU Source-Level Debugger)의 명령어 형식으로 변환하는 정보 변환기 관리자와,
    상기 변환된 명령어에 따라 상기 소프트웨어의 디버깅과 관련된 전반의 컨트롤을 위한 상기 GDB를 구동하는 프로세스 컨트롤러
    을 포함하는, 웹 기반 소프트웨어 디버깅 장치.
  5. 제4항에 있어서,
    상기 서버 관리자는,
    상기 디버거 클라이언트와 원격 시스템 간의 정보 교환을 위한 네트워크 관리자와,
    상기 GDB의 구동에 따른 상기 소프트웨어의 디버깅 결과를 해당 디버거 클라이언트로 전송하는 프로세스 관리자
    를 포함하는, 웹 기반 소프트웨어 디버깅 장치.
  6. 제4항에 있어서,
    상기 정보 변환기 관리자는,
    상기 디버깅 서비스 요청을 상기 GDB에서 사용되는 명령어 형식으로 변환하는 명령어 변환기와,
    상기 디버깅 결과에 따른 표준 에러를 처리하는 표준 에러 변환기와,
    상기 디버깅 결과에 따른 표준 출력을 처리하는 표준 출력 변환기와,
    상기 표준 에러 또는 표준 출력에 대한 처리 결과를 상기 서버 관리자에게 전달하는 결과 분석기
    를 포함하는, 웹 기반 소프트웨어 디버깅 장치.
  7. 제4항에 있어서,
    상기 프로세스 컨트롤러는,
    상기 정보 변환기 관리자에서 변환된 명령어를 수신하는 Tx 컨트롤러와,
    상기 수신된 명령어의 메시지 타입을 분석하는 프로세스 실행기와,
    상기 분석된 메시지 타입의 종류를 상기 정보 변환기 관리자로 전송하는 Rx 컨트롤러
    를 포함하는, 웹 기반 소프트웨어 디버깅 장치.
  8. 웹 인터페이스, 디버거 클라이언트, 디버거 서버로 구성된 디버깅 장치의 웹 기반 소프트웨어 디버깅 방법에 있어서,
    상기 웹 인터페이스에서 사용자가 사용하는 원격 시스템에서 수행되는 소프트웨어에 대한 디버깅 서비스를 요청하고 상기 소프트웨어의 소스 코드 및 디버깅 결과를 표시할 수 있는 웹 브라우저를 제공하는 단계;
    상기 디버거 클라이언트에서 상기 웹 인터페이스를 통해 상기 소프트웨어에 대한 디버깅 서비스 요청을 수신하고 상기 디버깅 서비스 요청을 디버깅 기능이 있는 상기 디버거 서버로 전송하는 단계;
    상기 디버거 서버에서 상기 디버거 클라이언트로부터 상기 디버깅 서비스 요청을 수신하고 상기 디버깅 서비스 요청에 따라 상기 원격 시스템과의 연결을 통해 상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 단계; 및
    상기 디버거 클라이언트에서 상기 디버거 서버로부터 상기 디버깅 서비스 요청에 대한 상기 소프트웨어의 디버깅 결과를 수신하여 상기 수신된 디버깅 결과를 상기 웹 인터페이스로 제공하는 단계
    를 포함하고,
    상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 단계는,
    상기 디버거 서버에서 상기 디버깅 서비스 요청에 따라 상기 디버깅 기능을 실행하고 상기 디버깅 기능의 실행에 의해 상기 원격 시스템으로부터 상기 소프트웨어의 소스 코드를 디버깅한 디버깅 결과를 수신하여 상기 디버거 클라이언트로 전송하는 것
    을 특징으로 하는 웹 기반 소프트웨어 디버깅 방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 디버깅 서비스 요청을 상기 디버거 서버로 전송하는 단계는,
    시리얼 통신 또는 TCP/IP 통신을 통해 상기 디버거 서버와의 통신 경로를 설정하는 단계를 포함하는, 웹 기반 소프트웨어 디버깅 방법.
  11. 제8항에 있어서,
    상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 단계는,
    시리얼 통신 또는 TCP/IP 통신을 통해 상기 원격 시스템과의 통신 경로를 설정하는 단계를 포함하는, 웹 기반 소프트웨어 디버깅 방법.
  12. 제8항에 있어서,
    상기 디버깅 서비스 요청을 상기 디버거 서버로 전송하는 단계는,
    상기 웹 브라우저가 실행되면 상기 디버거 서버로 디버깅 서비스를 위한 연결을 요청하는 단계와,
    상기 디버거 서버로부터 연결 성공 응답 패킷이 수신되면 상기 디버거 서버로 상기 원격 시스템과의 연결을 요청하는 단계와,
    상기 디버거 서버로부터 상기 원격 시스템과의 연결 성공 응답 패킷이 수신되면 상기 디버거 서버로 상기 디버깅 서비스 요청을 전송하는 단계
    를 포함하는, 웹 기반 소프트웨어 디버깅 방법.
  13. 제8항에 있어서,
    상기 소프트웨어를 디버깅한 후 디버깅 결과를 상기 디버거 클라이언트로 전송하는 단계는,
    상기 디버깅 서비스 요청에 따라 상기 원격 시스템으로 디버깅 서비스에 대한 요청 메시지를 전송하고 GDB를 구동하는 단계를 포함하고,
    상기 원격 시스템은,
    상기 GDB의 구동에 의해 상기 소프트웨어에 대한 디버깅을 수행한 후 디버깅 결과를 표준 에러(standard error)와 표준 출력(standard output)으로 상기 디버거 서버로 전송하는, 웹 기반 소프트웨어 디버깅 방법.
  14. 제8항, 제10항 내지 제13항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020090071264A 2009-08-03 2009-08-03 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법 KR101060181B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090071264A KR101060181B1 (ko) 2009-08-03 2009-08-03 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법
US12/667,234 US8589881B2 (en) 2009-08-03 2009-08-20 Web-based software debugging apparatus and method for remote debugging
PCT/KR2009/004627 WO2011016595A1 (ko) 2009-08-03 2009-08-20 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090071264A KR101060181B1 (ko) 2009-08-03 2009-08-03 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20110013679A KR20110013679A (ko) 2011-02-10
KR101060181B1 true KR101060181B1 (ko) 2011-08-29

Family

ID=43544486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090071264A KR101060181B1 (ko) 2009-08-03 2009-08-03 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법

Country Status (3)

Country Link
US (1) US8589881B2 (ko)
KR (1) KR101060181B1 (ko)
WO (1) WO2011016595A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014051248A1 (ko) * 2012-09-25 2014-04-03 에스케이플래닛 주식회사 디버깅 메시지 연동을 위한 시스템 및 방법

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228838A1 (en) * 2008-03-04 2009-09-10 Ryan Christopher N Content design tool
US9105009B2 (en) 2011-03-21 2015-08-11 Microsoft Technology Licensing, Llc Email-based automated recovery action in a hosted environment
CN103023708B (zh) * 2011-09-20 2016-04-13 腾讯科技(深圳)有限公司 通信协议接口的测试方法及系统
US8839257B2 (en) 2011-11-22 2014-09-16 Microsoft Corporation Superseding of recovery actions based on aggregation of requests for automated sequencing and cancellation
US8863085B1 (en) * 2012-01-31 2014-10-14 Google Inc. Monitoring web applications
US8726209B1 (en) * 2012-02-14 2014-05-13 C{dot over (a)}dence Design System, Inc. Method and system for automatically establishing a component description format (CDF) debugging environment
US9251039B2 (en) * 2012-02-17 2016-02-02 Microsoft Technology Licensing, Llc Remote debugging as a service
US9460303B2 (en) * 2012-03-06 2016-10-04 Microsoft Technology Licensing, Llc Operating large scale systems and cloud services with zero-standing elevated permissions
CN104335220B (zh) 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
TW201407369A (zh) * 2012-08-15 2014-02-16 Hon Hai Prec Ind Co Ltd 手持設備及其與電子產品間的通信方法
US8881249B2 (en) 2012-12-12 2014-11-04 Microsoft Corporation Scalable and automated secret management
US9720803B2 (en) * 2013-01-31 2017-08-01 Entit Software Llc Methods and apparatus for debugging of remote systems
CN103973741B (zh) * 2013-01-31 2018-02-09 国际商业机器公司 用于在云系统中进行远程调试的方法和装置
US20140317602A1 (en) * 2013-04-19 2014-10-23 International Business Machines Corporation Graphical User Interface Debugger with User Defined Interest Points
US9819725B1 (en) * 2013-05-08 2017-11-14 Amdocs Software Systems Limited System, method, and computer program for remotely controlling mobile web applications installed on a mobile device
US9606525B2 (en) * 2013-12-23 2017-03-28 Mitutoyo Corporation Remote accessory for generating customized and synchronized reference notes for a programmable metrology system
US9762585B2 (en) 2015-03-19 2017-09-12 Microsoft Technology Licensing, Llc Tenant lockbox
US10931682B2 (en) 2015-06-30 2021-02-23 Microsoft Technology Licensing, Llc Privileged identity management
MY179336A (en) 2015-12-25 2020-11-04 Intel Corp Device, method and system for performing closed chassis debug with a repeater
US10372588B2 (en) * 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
US10558553B2 (en) 2016-11-30 2020-02-11 International Business Machines Corporation Enabling non-blocking runtime application debugging for a single threaded server environment
GB2577950B (en) * 2018-10-11 2021-12-01 Arm Ip Ltd Method and apparatus for debugging devices
US10936470B2 (en) * 2018-11-14 2021-03-02 Citrix Systems, Inc. Systems and methods for performance bug and grievance reports for SaaS applications
CN109510737B (zh) * 2018-12-14 2022-04-26 深圳壹账通智能科技有限公司 协议接口测试方法、装置、计算机设备和存储介质
CN110727577B (zh) * 2019-08-29 2023-06-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 嵌入式系统软件中概率复现问题的调试方法、系统及介质
CN111782530B (zh) * 2020-06-30 2023-10-10 北京奇艺世纪科技有限公司 一种远程调试方法、装置、系统、电子设备及存储介质
EP3961436A1 (en) * 2020-08-28 2022-03-02 Siemens Aktiengesellschaft Methods and systems for controlling access to at least one computer program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050159A1 (en) * 2003-09-03 2005-03-03 Zeev Suraski Remote debugging of web applications
KR100619942B1 (ko) * 2004-10-20 2006-09-13 엘지전자 주식회사 이동 통신 단말기의 원격 소프트웨어 디버깅 시스템 및 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819093A (en) * 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
CA2205096C (en) * 1997-05-09 2001-10-09 Ibm Canada Limited-Ibm Canada Limitee A system for remote debugging of client/server applications
US6119247A (en) * 1998-06-22 2000-09-12 International Business Machines Corporation Remote debugging of internet applications
JP3339482B2 (ja) * 1999-12-15 2002-10-28 日本電気株式会社 分散デバッグ装置及びデバッグ方法並びに制御プログラムを記録した記録媒体
US20030005407A1 (en) * 2000-06-23 2003-01-02 Hines Kenneth J. System and method for coordination-centric design of software systems
US7873872B1 (en) * 2001-07-10 2011-01-18 Versata Development Group, Inc. System and method for remotely debugging application programs
US7827510B1 (en) * 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
US7748033B2 (en) * 2005-02-25 2010-06-29 Microsoft Corporation Windows remote debugger service
US7634760B1 (en) * 2005-05-23 2009-12-15 Netapp, Inc. System and method for remote execution of a debugging utility using a remote management module
US7849445B2 (en) * 2005-12-20 2010-12-07 Sap Ag Remote user interface for external connections
CN100485636C (zh) * 2006-04-24 2009-05-06 华为技术有限公司 一种基于模型驱动进行电信级业务开发的调试方法及装置
JP4846493B2 (ja) * 2006-09-05 2011-12-28 富士通セミコンダクター株式会社 デバッグシステム及びデバッグ回路
US8069371B2 (en) * 2007-04-26 2011-11-29 Hewlett-Packard Development Company, L.P. Method and system for remotely debugging a hung or crashed computing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050159A1 (en) * 2003-09-03 2005-03-03 Zeev Suraski Remote debugging of web applications
KR100619942B1 (ko) * 2004-10-20 2006-09-13 엘지전자 주식회사 이동 통신 단말기의 원격 소프트웨어 디버깅 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014051248A1 (ko) * 2012-09-25 2014-04-03 에스케이플래닛 주식회사 디버깅 메시지 연동을 위한 시스템 및 방법
US9720801B2 (en) 2012-09-25 2017-08-01 Sk Planet Co., Ltd. System and method for linking debugging message

Also Published As

Publication number Publication date
US8589881B2 (en) 2013-11-19
KR20110013679A (ko) 2011-02-10
WO2011016595A1 (ko) 2011-02-10
US20110252404A1 (en) 2011-10-13

Similar Documents

Publication Publication Date Title
KR101060181B1 (ko) 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법
US9632913B2 (en) Remote debug service in a cloud environment
US8028200B2 (en) Tracing operations in multiple computer systems
US5933639A (en) System and method for debugging distributed programs
US20080098359A1 (en) Manipulation of trace sessions based on address parameters
KR101019210B1 (ko) 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법
EP2724235B1 (en) N-way runtime interoperative debugging
US7954011B2 (en) Enabling tracing operations in clusters of servers
US20070168994A1 (en) Debugging a computer program in a distributed debugger
US20130160130A1 (en) Application security testing
US20050223359A1 (en) Techniques for multi-core debugging
KR102025078B1 (ko) 단일 스텝 실행을 이용한 코드 진단
WO2013049853A1 (en) Analytics driven development
US10713145B2 (en) Automated debugging with combined static and dynamic analysis
US8689223B2 (en) Mechanisms to detect priority inversion
US7200839B2 (en) Debugging transactions across multiple processors
WO2020087956A1 (zh) 抓取NVME硬盘trace的方法、装置、设备及系统
CN111339051B (zh) 日志处理方法、系统、设备及存储介质
US7873498B2 (en) Remote hardware inspection system and method
Yang et al. Transparently capturing request execution path for anomaly detection
CN105260257A (zh) 解决程序运行期间停止响应的方法和装置
CN110515849B (zh) 一种断点调试方法、装置、系统、设备及存储介质
Wang et al. Application of model-based testing on a quorum-based distributed storage
JP2001243089A (ja) ソフトウェア検証装置及びソフトウェア検証方法
CN112860562A (zh) 自动化测试方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150702

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170706

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 8