KR100532467B1 - 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법 - Google Patents
서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100532467B1 KR100532467B1 KR10-2003-0064723A KR20030064723A KR100532467B1 KR 100532467 B1 KR100532467 B1 KR 100532467B1 KR 20030064723 A KR20030064723 A KR 20030064723A KR 100532467 B1 KR100532467 B1 KR 100532467B1
- Authority
- KR
- South Korea
- Prior art keywords
- debugging information
- debugging
- source code
- file
- files
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한 소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램 검증 시스템 및 그 방법이 개시된다. 상기 MCU 응용프로그램 검증 시스템은, 다른 버전의 개발 툴을 통해 생성된 디버깅 정보 파일들이라고 하더라도 디버거가 동시에 처리하여, 동적으로 최근 소스 코드에 대응하는 디버깅 정보 파일에 최고 우선 순위를 부여하고 복수 어레이 형태의 디버깅 정보 데이터 구조를 만든다. 따라서, 이미 디버깅된 소스 코드들에 대응하는 이미지의 변경은 없이, 이미 디버깅된 소스 코드들과 최근에 업데이트된 새로운 소스 코드를 함께 소스 코드 레벨로 디버깅할 수 있는 효과가 있다.
Description
본 발명은 MCU(Micro Controller Unit) 응용프로그램 검증 시스템에 관한 것으로, 특히 MCU 응용 프로그램 개발 환경에서 여러 개의 디버깅 정보 파일들을 이용하여 소스 코드 레벨로 디버깅을 용이하게 하는 MCU 응용프로그램 검증 시스템 및 그 방법에 관한 것이다.
MCU 개발 분야에서 제한된 리소스(resource)의 사용과 다양한 어셈블리 언어 레벨(Assembly language Level)의 개발이 많이 이루어지고 있어서, MCU 응용 프로그램은 상대적으로 버그의 소지를 많이 안고있다. 그리고, 디버깅이 완료된 MCU 응용 프로그램은 ROM(read only memory) 코드와 같은 이미지 파일 형태로 메모리, 즉, 타겟에 다운로드되므로, 한 번 타겟에 다운로드된 이미지를 리라이트(rewrite) 하기는 불가능하다. 그러므로, MCU 응용 프로그램이 개발되면 다양한 테스트를 통해 이미지를 디버깅하게 되어있고, 이 부분은 MCU 응용 프로그램 개발에 있어 많은 오버헤드(overhead)를 초래한다. 그런데, C 언어(language) 소스 코드 등으로 MCU 응용 프로그램을 개발하는 중에, 컴파일러(compiler), 어셈블러(assembler), 링커(linker)와 같은 MCU 개발 툴이 업데이트(update) 되는 경우가 발생할 수 있다. 또한, MCU 응용 프로그램을 개발하고 나서 그 프로젝트나 프로젝트의 일부를 다음 프로젝트에 이용해야 할 경우에 개발 툴(tool)이 업데이트되는 경우가 발생 할 수 있다. 즉, 컴파일러나 옵티마이저(optimizer)의 버전 업에 의해 이미지 화일이 변화 될 수 있고, 링커가 업데이트되는 경우에 파일 재배치의 문제도 발생할 수 있다. 이때, 유저가 버전 업(up)된 응용 프로그램들에 이전 프로그램들을 리빌드(rebuild) 하려는 경우에는 문제가 없으나, 대부분은 이미 디버깅이 완료된 응용 프로그램에 대하여 버전 업된 새로운 언어 툴에 의하여 다시 똑같은 디버깅 작업을 하지 않기를 원한다.
소스 코드 레벨 디버깅은 개발된 MCU 응용 프로그램을 소프트웨어적으로 타겟에 다운로드(download) 될 이미지 파일 형태로 만든 후, 실행을 시키면서 소스 코드에 실행된 값을 매칭시켜 유저가 의도한 결과가 출력되는지를 검증하는 과정이다. 소스 코드 레벨 디버깅 작업은 MCU 보드의 타겟에 이미지 파일을 다운로드 한 후, MCU 보드를 동작시키면서 소스 코드와 비교하는 방법으로 이루어질 수도 있다. MCU 개발 툴 중의 하나인 디버깅 엔진, 즉, 디버거의 역할은 크게 두 가지 측면으로 나눌 수 있다. 즉, 디버거의 첫 번째 역할은 소스 코드의 라인들을 각각의 어드레스에 매핑(mapping)시키는 것이고, 두 번째는 베리어블(variable)과 데이터 값을 매핑시키는 역할이다.
MCU 응용 프로그램 개발 프로젝트가 진행될 때, 응용 프로그램은 여러 개의 소스 코드로 만들어진다. MCU 응용 프로그래머는 적게는 수 개 많게는 수 천개의 소스 코드들을 만든다. 도 1에 도시된 바와 같이, 소스 코드들(A.c, B.c)은 각각 컴파일링, 및 어셈블링되고, 이렇게 만들어진 목적 프로그램들(object program)은 링킹 과정을 통하여 타겟에 다운로드될 하나의 이미지 파일(AB.hex)과 디버거에 입력을 위한 하나의 디버깅 정보 파일(Debugging Information File)(AB.dbg)로 만들어진다. 컴파일링, 어셈블링, 및 링킹과 같은 과정은 유저 인터페이스(UI)에 의하여 제어된다.
또한, 유저 인터페이스(UI)에 의하여 제어되는 디버거는 디버깅 정보 파일(AB.dbg)을 입력받아 디버깅 정보를 생성하여 유저에게 표시해 준다. 유저는 디버깅 정보를 통하여 소스 코드 레벨의 검증을 한다. 디버깅 정보는 도 2에 도시된 바와 같이, 파일(file) 정보, 함수(function) 정보, 라인(line) 정보, 심볼(symbol) 정보 등을 포함한다. 이와 같은 디버깅 정보는, 위에서 기술한 바와 같이, 어드레스의 매핑 또는 데이터 값의 매핑에 의한 산출물이다.
위와 같이, 종래의 디버거는 여러 개의 소스 코드들(A.c, B.c)로부터 산출된 디버깅 정보 파일(AB.dbg)을 의미 있는 형태로 파싱(parsing)하여 소스 코드 레벨 디버깅에 사용될 도 2와 같은 단일 구조의 디버깅 정보를 산출한다. 이때, 여러 개의 소스 코드들(A.c, B.c)로부터 산출된 목적 프로그램들은, 링킹 과정을 통하여 어드레스 맵(Address map)의 일정 위치에 고정되도록 머지(merge)되어 하나의 이미지 파일(AB.hex)로 산출된다. 그러나, 이와 같은 종래의 디버깅 방식에서는, 소스 코드들(A.c, B.c) 중 이미 디버깅된 소스 코드(A.c)의 전부 또는 일부가, 새로 업데이트된 소스 코드(B.c)에 포함될 경우에, 하나의 이미지 파일(AB.hex)과 하나의 디버깅 정보 파일(AB.dbg)과 같은 머지 형태를 산출하기 위한 리빌드(rebuild) 작업이 이루어져한다는 문제점이 있다.
다시 말하여, 종래의 디버거는, 하나의 디버깅 정보 파일만을 받아 스테틱(static)하게 단일 구조의 디버깅 정보를 만들었기 때문에, 유저가 이미 테스트와 검증을 마친 소스 코드를 다른 프로젝트에서 사용하기 위해서는 새로운 프로젝트에 이전 소스 코드들을 모두 머지시켜 다같이 리빌드(rebuild) 하는 수밖에 없었다. 유저는 이미 디버깅된 소스 코드를 재배치 없이, 또한 코드의 변경 없이 재 사용하기를 원할 것이고, 재사용 시 이전 그대로의 소스 코드 레벨에서 디버깅하기를 원할 것이다. 특히, 개발 툴이 업데이트된 경우에, 종래의 디버깅 방식에서는, 이전에 디버깅된 소스 코드들을 새로운 소스 코드에 모두 머지시키는 리빌드 작업은 필수적이므로, 이에 따라 소스 코드의 사이즈, 위치, 이미지의 변경을 초래한다. 따라서, 오랜 시간에 걸쳐 디버깅된 소스 코드들을 무용지물로 만들고, 이미 디버깅된 소스 코드들에 대하여 다시 반복적으로 디버깅을 수행해야만 하는 문제점이 있다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 다른 버전의 개발 툴을 통해 생성된 디버깅 정보 파일들이라고 하더라도 디버거가 동시에 처리하여, 동적으로 최근 소스 코드에 대응하는 디버깅 정보 파일에 최고 우선 순위를 부여하고 복수 어레이 형태의 디버깅 정보 데이터 구조를 만들어, 이미 디버깅된 소스 코드들에 대응하는 이미지의 변경은 없이, 이미 디버깅된 소스 코드들과 최근에 업데이트된 새로운 소스 코드를 함께 소스 코드 레벨로 디버깅하는 MCU 응용프로그램 검증 방법을 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 다른 버전의 개발 툴을 통해 생성된 디버깅 정보 파일들이라고 하더라도 디버거가 동시에 처리하여, 동적으로 최근 소스 코드에 대응하는 디버깅 정보 파일에 최고 우선 순위를 부여하고 복수 어레이 구조의 디버깅 정보를 만들어, 이미 디버깅된 소스 코드들에 대응하는 이미지의 변경은 없이, 이미 디버깅된 소스 코드들과 최근에 업데이트된 새로운 소스 코드를 함께 소스 코드 레벨로 디버깅하는 MCU 응용프로그램 검증 시스템을 제공하는데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 MCU 응용프로그램 검증 방법은, 디버거에 의하여, 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하며, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력하여, 소스 코드 레벨로 디버깅할 수 있는 것을 특징으로 한다.
유저 인터페이스, 소스 코드들, 디버깅 정보 파일들, 및 디버거를 저장하는 데이터 베이스를 구비하여 MCU 응용프로그램을 검증하는 상기 MCU 응용프로그램 검증 방법은, 상기 유저 인터페이스를 통하여 디버깅하려는 소스 코드에 대하여, 유저가 입력하는 디버깅 명령어를 처리하여 디버깅 명령어 정보를 출력하고, 상기 디버깅 명령어 정보에 대응하여 출력되는 디버깅 정보를 표시하는 단계; 상기 디버깅 명령어 정보에 응답하여 읽어온 디버거에 의하여, 상기 소스 코드 및 관련된 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하는 단계; 및 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력하는 단계를 구비하는 것을 특징으로 한다.
상기 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾는 단계는, 목적 프로그램을 링킹 할 때에 소정 옵션을 가미하여 생성한 스크립트 파일로부터 참조된 해당 레이블의 절대 어드레스로 점프하여 찾는 것을 특징으로 한다. 상기 디버깅 정보 파일들은, 서로 다른 버전의 개발 툴에 의하여 생성된 경우에도, 리빌드 없이 재이용될 수 있는 것을 특징으로 한다. 상기 개발 툴은, 컴파일러, 어셈블러, 또는 링커를 포함하는 것을 특징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 MCU 응용프로그램 검증 시스템은, 입출력 장치, 중앙 제어부, 및 데이터 베이스를 구비하는 것을 특징으로 한다. 상기 입출력 장치는 유저 인터페이스를 통하여 디버깅하려는 소스 코드에 대하여, 유저가 입력하는 디버깅 명령어를 처리하여 디버깅 명령어 정보를 출력하고, 상기 디버깅 명령어 정보에 대응하여 출력되는 디버깅 정보를 표시한다. 상기 중앙 제어부는 상기 유저 인터페이스를 읽어와 상기 입출력 장치를 통하여 유저에게 표시하며, 상기 디버깅 명령어 정보에 응답하여 읽어온 디버거에 의하여, 상기 소스 코드 및 관련된 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하며, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력한다. 상기 데이터 베이스는 상기 유저 인터페이스, 상기 소스 코드들, 상기 디버깅 정보 파일들, 및 상기 디버거를 저장한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 일실시예에 따른 MCU 응용프로그램 검증 시스템의 블록도이다. 도 3을 참조하면, 본 발명의 일실시예에 따른 MCU 응용프로그램 검증 시스템은, 입출력 장치(100), 중앙 제어부(200), 및 데이터 베이스(300)를 구비한다.
상기 입출력 장치(100)는 유저 인터페이스(UI)를 통하여 디버깅하려는 소스 코드에 대하여, 유저가 입력하는 디버깅 명령어(COMMI)를 처리하여 상기 중앙 제어부(200)로 디버깅 명령어 정보를 출력하고, 상기 디버깅 명령어 정보에 대응하여 출력되는 디버깅 정보를 표시한다. 유저는 상기 입출력 장치(100)에 구비되어 상기 디버깅 정보를 표시하는 소정 모니터를 통하여, 디버깅 정보를 확인하면서 디버깅 작업을 수행한다.
상기 중앙 제어부(200)는 상기 유저 인터페이스(UI)를 읽어와 상기 입출력 장치(100)를 통하여 유저에게 표시하며, 상기 디버깅 명령어 정보에 응답하여 읽어온 디버거에 의하여, 디버깅 작업을 제어한다. 아래에 기술되는 바와 같이, 상기 디버거에는, 상기 소스 코드 및 관련된 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하는 수단이 포함된다. 또한, 상기 디버거에는, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하고, 이때, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력하는 수단이 포함된다. 상기 디버깅 정보 파일들은, 서로 다른 버전의 개발 툴, 즉, 컴파일러, 어셈블러, 링커에 의하여 생성된 파일들을 포함한다. 이때 상기 디버깅 정보 파일들이 서로 다른 버전의 개발 툴에 의하여 생성된 경우에도, 리빌드 없이 재이용될 수 있다.
상기 데이터 베이스(300)는, 유저 인터페이스부(310), 응용 프로그램부(320), 이미지 엔진부(330), 및 디버거부(340)를 구비한다. 상기 유저 인터페이스부(310)는 상기 유저 인터페이스(UI)를 저장한다. 상기 응용 프로그램부(320)는 상기 소스 코드들을 저장한다. 상기 이미지 엔진부(330)는 상기 중앙 제어부(200)가 상기 소스 코드들 각각을 컴파일링, 어셈블링, 및 링킹하여 생성한 디버깅 정보 파일들을 저장한다. 상기 디버거부(340)는 상기 디버거를 저장한다.
도 4는 도 3의 이미지 엔진의 구체적인 블록도이다. 도 4를 참조하면, 상기 이미지 엔진부(330)는, 다수의 컴파일러부들(compiler units)(3311, 3321), 다수의 어셈블리 프로그램부들(assembly program units)(3312, 3322), 다수의 어셈블러부들(assembler units)(3313, 3323), 다수의 목적 프로그램부들(object program units)(3314, 3324), 다수의 링커부들(linker units)(3315, 3325), 및 다수의 디버깅 정보 파일부들(debugging information file units)(3316, 3326)을 구비한다. 도 4에서, 프로그램을 저장하는 데이터 베이스들을 2개씩 도시하였으나, 다른 버전의 다른 툴이나 프로그램을 저장하는 다른 데이터 베이스들을 더 구비할 수 있다.
상기 다수의 컴파일러부들(3311, 3321)은 상기 중앙 제어부(200)가 상기 소스 코드들 각각을 컴파일링할 때 사용하는 컴파일러들을 저장한다. 이와 같은 컴파일러들은 서로 다른 버전일 수 있고, 같은 버전인 경우에는 같은 컴파일러가 될 수도 있다.
상기 다수의 어셈블리 프로그램부들(3312, 3322)은 컴파일링에 의하여 생성된 어셈블리 프로그램들(A.s, B.s) 각각을 저장한다.
상기 다수의 어셈블러부들(3313, 3323)은 상기 중앙 제어부(200)가 상기 어셈블리 프로그램들(A.s, B.s) 각각을 어셈블링할 때 사용하는 어셈블러들을 저장한다. 이와 같은 어셈블러들은 서로 다른 버전일 수 있고, 같은 버전인 경우에는 같은 어셈블러가 될 수도 있다.
상기 다수의 목적 프로그램부들(3314, 3324)은 어셈블링에 의하여 생성된 목적 프로그램들(A.obj, B.obj) 각각을 저장한다.
상기 다수의 링커부들(3315, 3325)은 상기 중앙 제어부(200)가 상기 목적 프로그램들(A.obj, B.obj) 각각을 링킹 할 때 사용하는 링커들을 저장한다. 이와 같은 링커들은 서로 다른 버전일 수 있고, 같은 버전인 경우에는 같은 링커가 될 수도 있다.
상기 다수의 디버깅 정보 파일부들(3316, 3326)은 상기 중앙 제어부(200)가 상기 목적 프로그램들(A.obj, B.obj) 각각을 링킹하여 생성한 디버깅 정보 파일들(A.dbg, B.dbg)을 저장한다. 상기 다수의 디버깅 정보 파일부들(3316, 3326)은, 다수의 이미지 파일부들(image file units)(3317, 3327), 및 다수의 스크립트 파일부들(script file units)(3319, 3329)을 더 구비한다. 상기 다수의 이미지 파일부들(3317, 3327)은, 상기 중앙 제어부(200)가 상기 목적 프로그램들(A.obj, B.obj) 각각을 링킹하여 생성한 이미지 파일들(A.hex, B.hex)을 저장한다. 이러한 이미지 파일들(A.hex, B.hex)은 다양한 형식으로 존재할 수 있다. 즉, 바이너리(binary) 형태의 파일일 수 있고, 또는 텍스트 형태의 파일일 수도 있다. 상기 다수의 스크립트 파일부들(3319, 3329)은 상기 중앙 제어부(200)가 상기 목적 프로그램들(A.obj, B.obj) 각각을 링킹하여 생성한 스크립트 파일들(A.txt, B.txt)을 저장한다.
도 5는 도 3의 MCU 응용프로그램 검증 시스템의 이미지 파일 작성 절차를 설명하는 도면이다. 도 5를 참조하면, 2개의 소스 코드들(A.c, B.c) 각각이 서로 다른 버전의 개발 툴, 즉, 컴파일러, 어셈블러, 링커에 의하여, 이미지 파일(A.hex, B.hex), 디버깅 정보 파일(A.dbg, B.dbg), 및 스크립트 파일(A.txt, B.txt)로 변환되는 과정이 도시되어 있다. 예를 들어, 유저가 제1 프로젝트에서 MCU 응용 프로그램으로서 제1 소스 코드(A.c)를 개발한다(S511). 유저는 제1 소스 코드(A.c)를 디버깅하기 위하여, 입출력 장치(100)를 통하여 유저 인터페이스(UI)를 실행시키고, 유저 인터페이스(UI)를 통하여 제1 소스 코드(A.c)에 대한 컴파일링, 어셈블링, 및 링킹 작업을 실행시킨다(S513~S517). 제1 소스 코드(A.c)에 대한 링킹 수행 결과 이미지 파일(A.hex), 디버깅 정보 파일(A.dbg), 및 스크립트 파일(A.txt)이 얻어진다(S519). 이때, 유저는 유저 인터페이스(UI)를 통하여 디버깅 명령어 정보를 입력하고, 이에 따라 디버거가 실행되면 디버깅을 수행한다. 디버거는 디버깅 정보 파일(A.dbg)을 이용하여, 유저가 제1 소스 코드(A.c) 내에 미리 디버깅을 위하여 요청해 놓은 코드, 즉 브레이크 포인트에서의 파일(file) 정보, 함수(function) 정보, 라인(line) 정보, 심볼(symbol) 정보 등 디버깅 정보를 계산한다. 디버거에 의하여 계산된 디버깅 정보는 입출력 장치(100)를 통하여 유저에게 표시된다. 이와 같은 제1 소스 코드(A.c)에 대한 디버깅 과정에 의하여, 오류를 치유하여, 제1 소스 코드(A.c)에 대한 디버깅 작업이 완료되었다고 하자. 디버깅 작업이 완성된 제1 소스 코드(A.c)에 대한 이미지 파일(A.hex)이, 이미지 파일부(3317)에 기록되는 형태가, 도 6에 도시되어 있다. 이미지 파일부(3317)에 저장된 이미지 파일(A.hex)은 디버깅 완료 후에 타겟, 즉, MCU 구동을 위한 ROM(read only memory), RAM(random access memory), 또는 FRAM(flash random access memory) 등에 다운로드 된다.
한편, 유저는 제1 프로젝트에서 개발된 MCU 응용 프로그램인 제1 소스 코드(A.c)를 기반으로, 새로운 제2 소스 코드(B.c)를 개발한다(S521). 제2 소스 코드(B.c)는 제1 소스 코드(A.c) 전부 또는 일부를 서브루틴으로 가지고 있다고 가정한다. 유저는 제2 소스 코드(B.c)를 디버깅하기 위하여, 입출력 장치(100)를 통하여 유저 인터페이스(UI)를 실행시키고, 유저 인터페이스(UI)를 통하여 제2 소스 코드(B.c)에 대한 컴파일링, 어셈블링, 및 링킹 작업을 실행시킨다(S523~S527). 여기서, 제2 소스 코드(B.c)에 대한 컴파일링, 어셈블링, 및 링킹 각각을 위한 컴파일러, 어셈블러, 및 링커는, 제1 소스 코드(A.c)에 대한 컴파일링, 어셈블링, 및 링킹 각각을 위한 컴파일러, 어셈블러, 및 링커와 버전이 서로 다를 수 있다. 제2 소스 코드(B.c)에 대한 링킹 수행 결과 이미지 파일(B.hex), 디버깅 정보 파일(B.dbg), 및 스크립트 파일(B.txt)이 얻어진다(S528). 링킹 수행 시에는, 소정 옵션을 통하여, 제1 소스 코드(A.c)에 대한 스크립트 파일(A.txt)을 참조하도록 함으로써, 이미지 파일(B.hex)을 만들 때, 서브루틴에 해당하는 레이블의 절대 어드레스(absolute address)가 기록되도록 한다. 이때, 유저는 유저 인터페이스(UI)를 통하여 디버깅 명령어 정보를 입력하고, 이에 따라 디버거가 실행되면 디버깅을 수행한다. 디버거는 디버깅 정보 파일들(A.dbg, B.dbg)을 이용하여, 유저가 제2 소스 코드(B.c) 내에 미리 디버깅을 위하여 요청해 놓은 코드, 즉 브레이크 포인트에서의 파일(file) 정보, 함수(function) 정보, 라인(line) 정보, 심볼(symbol) 정보 등 디버깅 정보를 계산한다. 베리어블(variable) 정보에 대해서도 마찬가지이다. 디버거에 의하여 계산된 디버깅 정보는 입출력 장치(100)를 통하여 유저에게 표시된다.
디버깅 정보를 계산하는 디버거의 동작을 좀더 자세히 설명한다. 도 7은 도 3의 디버거의 동작 설명을 위한 흐름도이다. 도 7을 참조하면, 유저가 유저 인터페이스(UI)를 통하여 디버깅 명령어 정보를 입력함으로써, 디버깅 정보를 요청하면(S710), 중앙 제어부(200)는 디버거를 실행하여, 새로 디버깅하려는 업데이트된 제2 소스 코드(B.c) 및 이와 관련된 제1 소스 코드(A.c) 각각에 대응하는 디버깅 정보 파일(A.dbg, B.dbg)을 입력받아, 리스트 또는 어레이 형태로 만들어진 디버깅 정보 파일들 각각에 동적으로 우선 순위를 부여한다. 여기서, 제1 소스 코드(A.c)가 다른 소스 코드(예를 들어, C.c)의 전부 또는 일부를 서브루틴으로 하는 경우에, 그 다른 소스 코드(C.c)가 링킹되어 생성된 다른 디버깅 정보 파일(예를 들어, C.dbg)을 더 입력받을 수 있다. 디버깅 정보 파일들(A.dbg, B.dbg) 각각에 우선 순위의 부여는, 도 8에 도시된 바와 같이, 최근 디버깅 정보 파일(B.dbg)을 최고 우선 순위로 하고, 최근 디버깅 정보 파일(B.dbg)이 참조하는 다른 디버깅 정보 파일(A.dbg)을 다음 순위로 하는 방법으로 한다. 이것은, 디버거가 디버깅 정보 리스트를 만들 때, 헤드(head) 쪽으로 최근에 업데이트된 디버깅 정보 파일(B.dbg)을 먼저 셋업하고, 다음 하위의 디버깅 정보 파일(A.dbg)을 그 뒤로 셋업하는 방법으로 가능하다. 이에 따라, 중앙 제어부(200)는 상위 우선 순위에 해당하는 최근 디버깅 정보 파일(B.dbg)을 통하여, 우선적으로 디버깅 정보를 찾아 유저 인터페이스(UI)로 출력한다(S720~740). 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일(B.dbg)을 통하여 발견되지 않으면, 다음 순위에 해당하는 이전 디버깅 정보 파일(A.dbg)을 통하여 상기 디버깅 정보를 찾아 유저 인터페이스(UI)로 출력한다(S750~760). 여기서, 상기 중앙 제어부(200)는, 상기 다음 순위의 디버깅 정보 파일(A.dbg)을 통하여 상기 디버깅 정보를 찾는 경우에, 목적 프로그램을 링킹할 때에 소정 옵션을 가미하여 생성한 스크립트 파일(A.txt)로부터 참조된 해당 레이블의 절대 어드레스(absolute address)로 점프하여 찾는다. 즉, 도 6의 예에서, 제2 소스 코드(B.c)의 디버깅 수행 중에, "Func1();" 이라는 레이블에 해당하는 디버깅 정보는, 그 절대 어드레스 "0x1000"로 점프함으로써, 이미 디버깅이 완료된 제1 소스 코드(A.c)에 대응하는 디버깅 정보 파일(A.dbg)로부터 발견된다.
이와 같이, 본 발명은 다른 버전의 개발 툴을 통해 생성된 디버깅 정보 파일들이라고 하더라도 디버거가 동시에 처리하여, 동적으로 최근 소스 코드에 대응하는 디버깅 정보 파일(B.dbg)에 최고 우선 순위를 부여하고, 도 8에 도시된 바와 같이, 복수 어레이 구조의 디버깅 정보를 만든다. 따라서, 이미 디버깅된 소스 코드(A.c)에 대응하는 이미지 파일(A.hex)의 변경은 없이, 이미 디버깅된 소스 코드(A.c)와 최근에 업데이트된 새로운 소스 코드(B.c)를 함께 소스 코드 레벨로 디버깅할 수 있다.
이와 같은 제2 소스 코드(B.c)에 대한 디버깅 과정에 의하여, 오류가 치유되면, 제2 소스 코드(B.c)에 대한 이미지 파일(B.hex)이, 도 6에 도시된 바와 같이, 이미지 파일부(3327)에 기록된다. 이미지 파일부(3327)에 저장된 이미지 파일(B.hex)은 디버깅 완료 후에 타겟에 다운로드된다. 두 개의 소스 코드들(A.c, B.c)이 각각 디버깅되어, 최종 이미지 파일(A.hex, B.hex)이, 도 6에 도시된 바와 같이 완성된 경우에, 이들을 타겟에 다운로드하려면, 먼저 제1 소스 코드(A.c)에 대응하는 이미지 파일(A.hex)을 타겟에 다운로드한다. 다음에, 제1 소스 코드(A.c)를 기반으로 업데이트된 제2 소스 코드(B.c)에 대응하는 이미지 파일(B.hex)을 타겟에 오버라이트(overwrite)한다. 이와 같은 순서로 도 6과 같이 두 개의 소스 코드로 이루어지는 이미지 파일들(A.hex, B.hex)을 타겟에 다운로드하면, 도 9와 같은 형태가 된다.
위에서 기술한 바와 같이, 본 발명의 일실시예에 따른 MCU 응용프로그램 검증 시스템은, 디버거에 의하여, 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하며, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력한다. 이에 따라, 상기 디버깅 정보 파일들이 서로 다른 버전의 개발 툴에 의하여 생성된 파일들이라 하더라도, 리빌드(rebuild) 없이 용이하게 소스 코드 레벨로 디버깅할 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 MCU 응용프로그램 검증 시스템은, 다른 버전의 개발 툴을 통해 생성된 디버깅 정보 파일들이라고 하더라도 디버거가 동시에 처리하여, 동적으로 최근 소스 코드에 대응하는 디버깅 정보 파일에 최고 우선 순위를 부여하고 복수 어레이 형태의 디버깅 정보 데이터 구조를 만든다. 따라서, 이미 디버깅된 소스 코드들에 대응하는 이미지의 변경은 없이, 이미 디버깅된 소스 코드들과 최근에 업데이트된 새로운 소스 코드를 함께 소스 코드 레벨로 디버깅할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일반적인 이미지 파일 작성 절차를 설명하는 도면이다.
도 2는 일반적인 디버깅 정보의 데이터 구조를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 MCU 응용프로그램 검증 시스템의 블록도이다.
도 4는 도 3의 이미지 엔진의 구체적인 블록도이다.
도 5는 도 3의 MCU 응용프로그램 검증 시스템의 이미지 파일 작성 절차를 설명하는 도면이다.
도 6은 2개의 응용 프로그램의 이미지 파일 저장 형태를 나타내는 도면이다.
도 7은 도 3의 디버거의 동작 설명을 위한 흐름도이다.
도 8은 본 발명의 일실시예에 따른 디버깅 정보의 데이터 구조를 나타내는 도면이다.
도 9는 이미지 파일이 타겟에 다운로드 되는 형태를 나타내는 도면이다.
Claims (20)
- 디버거에 의하여, 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하며, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력하여, 소스 코드 레벨로 디버깅할 수 있는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 제 1항에 있어서, 상기 디버깅 정보 파일들은,서로 다른 버전의 개발 툴에 의하여 생성된 경우에도, 리빌드 없이 재이용될 수 있는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 유저 인터페이스, 소스 코드들, 디버깅 정보 파일들, 및 디버거를 저장하는 데이터 베이스를 구비하여 MCU 응용프로그램을 검증하는 방법에 있어서,상기 유저 인터페이스를 통하여 디버깅하려는 소스 코드에 대하여, 유저가 입력하는 디버깅 명령어를 처리하여 디버깅 명령어 정보를 출력하고, 상기 디버깅 명령어 정보에 대응하여 출력되는 디버깅 정보를 표시하는 단계;상기 디버깅 명령어 정보에 응답하여 읽어온 디버거에 의하여, 상기 소스 코드 및 관련된 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하는 단계; 및상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력하는 단계를 구비하는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 제 3항에 있어서, 상기 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾는 단계는,목적 프로그램을 링킹할 때에 소정 옵션을 가미하여 생성한 스크립트 파일로부터 참조된 해당 레이블의 절대 어드레스로 점프하여 찾는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 3항에 있어서, 상기 디버깅 정보 파일들은,서로 다른 버전의 개발 툴에 의하여 생성된 경우에도, 리빌드 없이 재이용될 수 있는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 제 5항에 있어서, 상기 개발 툴은,컴파일러를 포함하는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 제 5항에 있어서, 상기 개발 툴은,어셈블러를 포함하는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 제 5항에 있어서, 상기 개발 툴은,링커를 포함하는 것을 특징으로 하는 MCU 응용프로그램 검증 방법.
- 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하는 제1 수단; 및상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하며, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 디버깅 정보를 찾아 출력하는 제2 수단을 구비하고,소스 코드 레벨로 디버깅할 수 있는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 9항에 있어서, 상기 디버깅 정보 파일들은,서로 다른 버전의 개발 툴에 의하여 생성된 경우에도, 리빌드 없이 재이용될 수 있는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 유저 인터페이스를 통하여 디버깅하려는 소스 코드에 대하여, 유저가 입력하는 디버깅 명령어를 처리하여 디버깅 명령어 정보를 출력하고, 상기 디버깅 명령어 정보에 대응하여 출력되는 디버깅 정보를 표시하는 입출력 장치;상기 유저 인터페이스를 읽어와 상기 입출력 장치를 통하여 유저에게 표시하며, 상기 디버깅 명령어 정보에 응답하여 읽어온 디버거에 의하여, 상기 소스 코드 및 관련된 다수의 소스 코드들 각각에 대응하는 디버깅 정보 파일을 입력받아 동적으로 디버깅 정보 파일들 각각에 우선 순위를 부여하고, 상위 우선 순위의 디버깅 정보 파일을 통하여 우선적으로 디버깅 정보를 찾아 출력하며, 상기 디버깅 정보가 상위 우선 순위의 디버깅 정보 파일을 통하여 발견되지 않으면, 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾아 출력하는 중앙 제어부; 및상기 유저 인터페이스, 상기 소스 코드들, 상기 디버깅 정보 파일들, 및 상기 디버거를 저장하는 데이터 베이스를 구비하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 11항에 있어서, 상기 중앙 제어부는,상기 다음 순위의 디버깅 정보 파일을 통하여 상기 디버깅 정보를 찾는 경우에, 목적 프로그램을 링킹할 때에 소정 옵션을 가미하여 생성한 스크립트 파일로부터 참조된 해당 레이블의 절대 어드레스로 점프하여 찾는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 11항에 있어서, 상기 디버깅 정보 파일들은,서로 다른 버전의 개발 툴에 의하여 생성된 경우에도, 리빌드 없이 재이용될 수 있는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 13항에 있어서, 상기 개발 툴은,컴파일러를 포함하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 13항에 있어서, 상기 개발 툴은,어셈블러를 포함하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 13항에 있어서, 상기 개발 툴은,링커를 포함하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 11항에 있어서, 상기 데이터 베이스는,상기 유저 인터페이스를 저장하는 유저 인터페이스부;상기 소스 코드들을 저장하는 응용 프로그램부;상기 중앙 제어부가 상기 소스 코드들 각각을 컴파일링, 어셈블링, 및 링킹하여 생성한 디버깅 정보 파일들을 저장하는 이미지 엔진부; 및상기 디버거를 저장하는 디버거부를 구비하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 17항에 있어서, 상기 이미지 엔진부는,상기 중앙 제어부가 상기 소스 코드들 각각을 컴파일링할 때 사용하는 컴파일러들을 저장하는 다수의 컴파일러부들;컴파일링에 의하여 생성된 어셈블리 프로그램들 각각을 저장하는 다수의 어셈블리 프로그램부들;상기 중앙 제어부가 상기 어셈블리 프로그램들 각각을 어셈블링 할 때 사용하는 어셈블러들을 저장하는 다수의 어셈블러부들;어셈블링에 의하여 생성된 목적 프로그램들 각각을 저장하는 다수의 목적 프로그램부들;상기 중앙 제어부가 상기 목적 프로그램들 각각을 링킹할 때 사용하는 링커들을 저장하는 다수의 링커부들; 및상기 중앙 제어부가 상기 목적 프로그램들 각각을 링킹하여 생성한 디버깅 정보 파일들을 저장하는 다수의 디버깅 정보 파일부들을 구비하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 18항에 있어서, 상기 이미지 엔진부는,상기 중앙 제어부가 상기 목적 프로그램들 각각을 링킹하여 생성한 이미지 파일들을 저장하는 다수의 이미지 파일부들을 더 구비하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
- 제 18항에 있어서, 상기 이미지 엔진부는,상기 중앙 제어부가 상기 목적 프로그램들 각각을 링킹하여 생성한 스크립트 파일들을 저장하는 다수의 스크립트 파일부들을 더 구비하는 것을 특징으로 하는 MCU 응용프로그램 검증 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0064723A KR100532467B1 (ko) | 2003-09-18 | 2003-09-18 | 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법 |
US10/943,003 US20050066308A1 (en) | 2003-09-18 | 2004-09-17 | Application program verification system and method using separate debugging information files |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0064723A KR100532467B1 (ko) | 2003-09-18 | 2003-09-18 | 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050028465A KR20050028465A (ko) | 2005-03-23 |
KR100532467B1 true KR100532467B1 (ko) | 2005-12-01 |
Family
ID=34309433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-0064723A KR100532467B1 (ko) | 2003-09-18 | 2003-09-18 | 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050066308A1 (ko) |
KR (1) | KR100532467B1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060081323A (ko) * | 2005-01-07 | 2006-07-12 | 엘지전자 주식회사 | 로컬 스토리지를 이용한 기록매체 재생방법 및 재생장치 |
KR100871820B1 (ko) | 2007-06-27 | 2008-12-03 | 엠디에스테크놀로지 주식회사 | 소스 오류 선별시스템 및 그 방법 |
US20090271768A1 (en) * | 2008-04-24 | 2009-10-29 | International Business Machines Corporation | Discriminating program code updates after merging for live review |
US8689223B2 (en) * | 2008-11-18 | 2014-04-01 | International Business Machines Corporation | Mechanisms to detect priority inversion |
US8677186B2 (en) | 2010-12-15 | 2014-03-18 | Microsoft Corporation | Debugging in data parallel computations |
US8997066B2 (en) | 2010-12-27 | 2015-03-31 | Microsoft Technology Licensing, Llc | Emulating pointers |
US8539458B2 (en) | 2011-06-10 | 2013-09-17 | Microsoft Corporation | Transforming addressing alignment during code generation |
US8677322B2 (en) * | 2011-06-29 | 2014-03-18 | Microsoft Corporation | Debugging in a multiple address space environment |
KR20150094178A (ko) | 2014-02-10 | 2015-08-19 | 삼성전자주식회사 | 보안 장치 및 보안 장치의 제어 방법 |
CN104281470B (zh) * | 2014-05-09 | 2017-07-21 | 浙江大学 | 一种基于单外接串口的多mcu系统软件升级方法 |
US10318403B2 (en) | 2016-05-17 | 2019-06-11 | International Business Machines Corporation | Code update based on detection of change in runtime code during debugging |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410648A (en) * | 1991-08-30 | 1995-04-25 | International Business Machines Corporation | Debugging system wherein multiple code views are simultaneously managed |
JP3196675B2 (ja) * | 1996-12-27 | 2001-08-06 | 日本電気株式会社 | 言語処理方式 |
US6637024B1 (en) * | 2000-05-03 | 2003-10-21 | International Business Machines Corporation | Method and product for debugging a target java virtual machine having no debug information therein |
US6766511B1 (en) * | 2000-07-10 | 2004-07-20 | International Business Machines Corporation | Apparatus and method for performing symbolic resolution of modules using static representations of a trace |
US6922827B2 (en) * | 2002-02-22 | 2005-07-26 | Bea Systems, Inc. | Iterative software development environment with prioritized build rules |
US7165241B2 (en) * | 2002-11-26 | 2007-01-16 | Sun Microsystems, Inc. | Mechanism for testing execution of applets with plug-ins and applications |
US7165246B2 (en) * | 2003-01-16 | 2007-01-16 | Sun Microsystems, Inc. | Optimized representation of data type information in program verification |
-
2003
- 2003-09-18 KR KR10-2003-0064723A patent/KR100532467B1/ko not_active IP Right Cessation
-
2004
- 2004-09-17 US US10/943,003 patent/US20050066308A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
KR20050028465A (ko) | 2005-03-23 |
US20050066308A1 (en) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5325531A (en) | Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines | |
CN111796831B (zh) | 一种多芯片兼容的编译方法和装置 | |
US5193191A (en) | Incremental linking in source-code development system | |
US7971201B2 (en) | Multiple operating device version software generating system and multiple operating device version software generation support program and method | |
US5201050A (en) | Line-skip compiler for source-code development system | |
US7426717B1 (en) | System and method for debugging files in a runtime environment | |
US20030088860A1 (en) | Compiler annotation for binary translation tools | |
JP2000181725A (ja) | 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム | |
US6467082B1 (en) | Methods and apparatus for simulating external linkage points and control transfers in source translation systems | |
KR100532467B1 (ko) | 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법 | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
KR100537258B1 (ko) | 디버그지원장치,프로그램번역장치,컴퓨터판독가능한디버그지원프로그램을기록한기록매체,프로그램번역프로그램을기록한기록매체 | |
US6314557B1 (en) | Hybrid computer programming environment | |
JPH0926884A (ja) | バイナリ操作を必要とするタスク中に必要なフロー情報を使用可能とする方法および装置 | |
US6289264B1 (en) | Debugging system for robot programs | |
EP0406028A2 (en) | Incremental compiler for source code development system | |
CN109683900B (zh) | 针对elf文件调试信息的通用上位机符号查找与解析方法 | |
US7073096B2 (en) | File path resolving debugger | |
US7178064B2 (en) | Debug device, debug method and storage medium | |
JP5962350B2 (ja) | プログラム、情報処理装置およびテスト方法 | |
JP3352893B2 (ja) | デバッグ情報作成方法、デバッグ方法及びデバッグシステム | |
JP2002259121A (ja) | ソースラインデバッグ装置 | |
Loeliger | Developing an interprocedural optimizing compiler | |
Bonkowski et al. | Porting the Zed compiler | |
JP2001005688A (ja) | 並列プログラム用デバッグ支援装置 |
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: 20081103 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |