KR20210063519A - 스택 결함 원인을 진단하는 방법 및 장치 - Google Patents
스택 결함 원인을 진단하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20210063519A KR20210063519A KR1020190151477A KR20190151477A KR20210063519A KR 20210063519 A KR20210063519 A KR 20210063519A KR 1020190151477 A KR1020190151477 A KR 1020190151477A KR 20190151477 A KR20190151477 A KR 20190151477A KR 20210063519 A KR20210063519 A KR 20210063519A
- Authority
- KR
- South Korea
- Prior art keywords
- stack
- fault
- context
- central processing
- processing unit
- Prior art date
Links
Images
Classifications
-
- 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/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 중앙처리장치와 스택 메모리를 포함하는 컴퓨팅 시스템에서 스택 결함 원인을 진단하는 방법에 있어서, 어플리케이션 소프트웨어의 실행에 따라 컨텍스트의 입력과 탈출이 반복되는 과정에서, 상기 중앙처리장치가 스택 결함 발생을 감지하는 단계; 상기 스택 결함이 발생할 경우, 상기 중앙처리장치가 스택 히스토리를 반환하는 단계; 및 상기 스택 히스토리가 반환되면, 상기 중앙처리장치가 상기 스택 히스토리에 기초하여 스택 결함을 발생시키는 컨텍스트를 파악하는 단계;를 포함한다.
Description
본 발명은 스택 결함 원인을 진단하는 방법 및 장치에 관한 것으로, 보다 상세하게는 임의의 어플리케이션 소프트웨어 실행 시 스택 결함이 발생하기 전 원인을 파악하여 해당 어플리케이션 소프트웨어의 스택 영역을 최적화시킬 수 있도록 하는, 스택 결함 원인을 진단하는 방법 및 장치에 관한 것이다.
일반적으로 스택 구성 중앙처리장치를 구비한 시스템에서 수행되는 오퍼레이터 시스템(OS) 상에서 수행되는 모든 어플리케이션 소프트웨어는 중앙처리장치 내부적으로 스택 방식으로 수행된다. 설정된 오퍼레이터 시스템 상에서 어플리케이션 소프트웨어는 기능별 또는 작업 단위로 태스크 또는 프로세스라는 이름으로 독자적인 동작을 수행하며, 각각의 태스크나 프로세스들은 오퍼레이터 시스템(OS)에서 설정된 우선순위를 모두 가지고 있다.
상기 오퍼레이터 시스템은 이러한 어플리케이션 소프트웨어의 우선순위에 따라서 스케줄링을 수행하여 중앙처리장치의 제어권을 해당 프로그램들에게 넘겨 해당 기능을 수행하게 한다.
이때 임의의 어플리케이션 소프트웨어와 오퍼레이터 시스템의 요구 또는 소프트웨어적인 오류 발생 시 디버깅을 위해 해당 태스크나 프로세서들의 스택 추적을 수행하게 된다.
이러한 경우 종래의 기술은 단순히 현재의 스택 포인터(Stack pointer)에서 마지막 스택 포인터까지 추적을 수행하게 된다. 그런데 이때 연결 목록으로 연결되어 지는 스택이 어떠한 이유에 의해서 깨어질 경우 더 이상의 스택 추적을 진행하지 않거나, 진행한다고 하여도 유효하지 않는 값으로 스택 추적을 진행하게 되어 유효한 정보를 얻을 수 없다.
즉, 소프트웨어는 컨텍스트 스위칭(Context Switching)(즉, 현재 진행하고 있는 Task(또는 Process, Thread)의 상태를 저장하고 다음 진행할 Task의 상태 값을 읽어 적용하는 과정) 시 소프트웨어 내부 상태를 스택(Stack) 영역에 저장하고 리턴(Return)시 이를 반환한다. 이때 오퍼레이터 시스템(OS)은 스택 영역이 부족하거나 침범될 경우 스택에 저장된 소프트웨어 내부 상태를 정상적으로 복구해 줄 수 없기 때문에 더 이상 정상적인 서비스가 불가능하다고 판단하여 에러를 발생시키고 소프트웨어를 종료한다.
이와 같이 스택 결함(Stack Fault)이 발생했는지는 스택 탑(Stack Top)의 패턴이 깨졌는지(즉, 스택 탑이 사용되었는지)를 보고 판단한다.
그런데 스택 탑(Stack Top)이 사용되었을 경우 스택 결함(Stack Fault)을 발생시키기 때문에 실제 스택 결함 발생 시점에 어플리케이션 소프트웨어의 어떤 함수가 스택을 얼마만큼 써서 스택 결함(Stack Fault)이 발생하게 되었는지 알 수 없는 문제점이 있다.
왜냐하면 스택 결함 발생 시점에 수행중인 함수가 항상 스택 결함 발생의 원인이 되는 것은 아니기 때문이다.
이에 따라 상기 스택 결함 발생 전에 수행된 많은 함수들 중에 스택 결함을 유발시킨 함수를 특정하기가 어렵고, 해당 스택 결함 에러 발생 시 복구 불가능한 에러(Error)이기 때문에 디버깅이 불가능한 문제점이 있다. 따라서 임의의 어플리케이션 소프트웨어 실행 시 스택 결함이 발생하기 전에(또는 스택 결함의 발생을 방지한 상태에서) 그 스택 결함이 발생할 수 있는 상태가 되었을 때 이 상태가 되는 원인을 파악할 수 있도록 하여, 해당 어플리케이션 소프트웨어의 스택 영역을 최적화시킬 수 있도록 하는 기술이 필요한 상황이다.
본 발명의 배경기술은 대한민국 등록특허 10-0866218호(2008.10.24. 등록, 안정된 스택 추적 방법)에 개시되어 있다.
본 발명의 일 측면에 따르면, 본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 임의의 어플리케이션 소프트웨어 실행 시 스택 결함이 발생하기 전 원인을 파악하여 해당 어플리케이션 소프트웨어의 스택 영역을 최적화시킬 수 있도록 하는, 스택 결함 원인을 진단하는 방법 및 장치를 제공하는 데 그 목적이 있다.
본 발명의 일 측면에 따른 스택 결함 원인을 진단하는 방법은, 중앙처리장치와 스택 메모리를 포함하는 컴퓨팅 시스템에서 스택 결함 원인을 진단하는 방법에 있어서, 어플리케이션 소프트웨어의 실행에 따라 컨텍스트의 입력과 탈출이 반복되는 과정에서, 상기 중앙처리장치가 스택 결함 발생을 감지하는 단계; 상기 스택 결함이 발생할 경우, 상기 중앙처리장치가 스택 히스토리를 반환하는 단계; 및 상기 스택 히스토리가 반환되면, 상기 중앙처리장치가 상기 스택 히스토리에 기초하여 스택 결함을 발생시키는 컨텍스트를 파악하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 히스토리는, 컨텍스트와 스택 포인터 값을 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 결함 발생을 감지하는 단계 이전에, 상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 상기 중앙처리장치가, 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달하는지 체크하는 단계; 및 상기 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달할 경우에 임시 스택 영역을 동적으로 추가 할당하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 결함 발생을 감지하는 단계 이전에, 상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 상기 중앙처리장치가, 컨텍스트 스위칭 시 이벤트가 발생할 때마다 사용했던 최대 스택 사용량을 기록하고, 최초 설정된 스택 영역에서 현재 남은 스택 영역의 사이즈를 산출하는 단계; 및 상기 중앙처리장치가, 현재 남은 스택 영역의 사이즈와 해당 컨텍스트가 사용한 스택의 최대 사용량을 비교하여, 상기 최대 사용량에 지정된 마진 값을 합산한 스택 용량이 현재 남은 스택 영역의 사이즈보다 큰 경우, 추가적인 동적 스택 영역의 할당이 필요한 것으로 판단하여 임시 스택 영역을 동적으로 추가 할당하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 결함 발생을 감지하는 단계에서, 상기 중앙처리장치는, 최초 설정된 스택 영역에서 이미 사용된 스택 영역과 상기 동적으로 추가 할당된 임시 스택 영역에서 추가로 사용된 스택 영역의 총 합이 상기 최초 설정된 스택 영역의 사이즈를 초과한 경우, 스택 결함이 발생된 것으로 감지하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 히스토리에 기초하여 스택 결함을 발생시키는 컨텍스트를 파악하는 단계에서, 상기 중앙처리장치는, 컨텍스트가 입력될 때 저장한 스택 포인터와 상기 컨텍스트가 종료되어 복귀할 때 반환하는 스택 포인터가 다른 경우에 스택 결함을 발생시키는 컨텍스트로 파악하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 결함을 발생시키는 컨텍스트를 파악하는 단계 이후, 상기 중앙처리장치가, 상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시하는 단계 이후, 상기 중앙처리장치가 사용자 인터페이스를 통해 사용자에게 어플리케이션 소프트웨어의 계속 진행 여부를 체크하는 단계; 및 사용자가 계속 진행 선택 시, 상기 중앙처리장치가 어플리케이션 소프트웨어를 계속 실행시켜 스택 결함을 발생시키는 다른 컨텍스트를 계속해서 파악하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 스택 결함 원인을 진단하는 장치는, 컴퓨팅 시스템의 스택 메모리; 및 상기 컴퓨팅 시스템에서 어플리케이션 소프트웨어의 실행에 따라 컨텍스트의 입력과 탈출이 반복되는 과정에서 스택 결함 발생을 감지하는 중앙처리장치;를 포함하고, 상기 스택 결함이 발생할 경우, 상기 중앙처리장치가 스택 히스토리를 반환하고, 상기 반환된 스택 히스토리를 분석하여 스택 결함을 발생시키는 컨텍스트를 파악하는 것을 특징으로 한다.
본 발명에 있어서, 상기 스택 히스토리는, 컨텍스트와 스택 포인터 값을 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 중앙처리장치는, 상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 스택 결함 발생을 감지하는 단계 이전에, 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달하는지 체크하고, 상기 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달할 경우에 임시 스택 영역을 동적으로 추가 할당하는 것을 더 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 중앙처리장치는, 상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 스택 결함 발생을 감지하는 단계 이전에, 컨텍스트 스위칭 시 이벤트가 발생할 때마다 사용했던 최대 스택 사용량을 기록하고, 최초 설정된 스택 영역에서 현재 남은 스택 영역의 사이즈를 산출하고, 현재 남은 스택 영역의 사이즈와 해당 컨텍스트가 사용한 스택의 최대 사용량을 비교하여, 상기 최대 사용량에 지정된 마진 값을 합산한 스택 용량이 현재 남은 스택 영역의 사이즈보다 큰 경우, 임시 스택 영역을 동적으로 추가 할당하는 것을 특징으로 한다.
본 발명에 있어서, 상기 중앙처리장치는, 최초 설정된 스택 영역에서 이미 사용된 스택 영역과 상기 동적으로 추가 할당된 임시 스택 영역에서 추가로 사용된 스택 영역의 총 합이 상기 최초 설정된 스택 영역의 사이즈를 초과한 경우, 스택 결함이 발생된 것으로 감지하는 것을 특징으로 한다.
본 발명에 있어서, 상기 중앙처리장치는, 컨텍스트가 입력될 때 저장한 스택 포인터와 상기 컨텍스트가 종료되어 복귀할 때 반환하는 스택 포인터가 다른 경우에 스택 결함을 발생시키는 컨텍스트로 파악하는 것을 특징으로 한다.
본 발명에 있어서, 상기 중앙처리장치는, 상기 스택 결함을 발생시키는 컨텍스트를 파악하면, 상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시하는 것을 특징으로 한다.
본 발명에 있어서, 상기 중앙처리장치는, 상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시한 이후, 상기 사용자 인터페이스를 통해 사용자에게 어플리케이션 소프트웨어의 계속 진행 여부를 체크하고, 사용자가 계속 진행 선택 시, 어플리케이션 소프트웨어를 계속 실행시켜 스택 결함을 발생시키는 다른 컨텍스트를 계속해서 파악하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 본 발명은 임의의 어플리케이션 소프트웨어 실행 시 스택 결함이 발생하기 전 원인을 파악하여 해당 어플리케이션 소프트웨어의 스택 영역을 최적화시킬 수 있도록 한다. 또한 임의의 어플리케이션 소프트웨어 실행 시 스택 결함의 발생을 방지한 상태에서 그 스택 결함이 발생할 수 있는 상태가 되었을 때 이 상태가 되는 원인을 파악할 수 있도록 하여, 해당 어플리케이션 소프트웨어의 스택 영역을 최적화시킬 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 중앙처리장치와 메모리부를 포함하는 컴퓨팅 시스템의 개략적인 구성을 보인 예시도.
도 3은 상기 도 2에 있어서, 태스크(task)의 수행에 따라 스택 포인터를 저장하고 반환하는 과정에서 스택 결함이 발생하는 상황을 예시적으로 설명하기 위하여 보인 예시도.
도 3은 상기 도 2에 있어서, 태스크(task)의 수행에 따라 스택 포인터를 저장하고 반환하는 과정에서 스택 결함이 발생하는 상황을 예시적으로 설명하기 위하여 보인 예시도.
도 4는 상기 도 2에 있어서, 스택에 미리 기록된 히스토리를 바탕으로 스택 결함 원인을 파악하는 과정을 설명하기 위한 흐름도.
도 5는 상기 도 4에 있어서, 최초 설정된 스택 영역 사이즈에 대한 마진 값 이상의 스택이 사용될 경우 임시 스택 영역을 추가로 할당하여 스택 결함 원인을 파악하는 방법을 설명하기 위한 흐름도.
도 6은 상기 도 4에 있어서, 최대 스택 사용량과 최초 설정된 스택 영역에서 현재 남은 스택 영역을 비교하여 스택 영역의 부족이 예상될 경우 임시 스택 영역을 추가로 할당하여 스택 결함 원인을 파악하는 다른 방법을 설명하기 위한 예시도.
도 3은 상기 도 2에 있어서, 태스크(task)의 수행에 따라 스택 포인터를 저장하고 반환하는 과정에서 스택 결함이 발생하는 상황을 예시적으로 설명하기 위하여 보인 예시도.
도 3은 상기 도 2에 있어서, 태스크(task)의 수행에 따라 스택 포인터를 저장하고 반환하는 과정에서 스택 결함이 발생하는 상황을 예시적으로 설명하기 위하여 보인 예시도.
도 4는 상기 도 2에 있어서, 스택에 미리 기록된 히스토리를 바탕으로 스택 결함 원인을 파악하는 과정을 설명하기 위한 흐름도.
도 5는 상기 도 4에 있어서, 최초 설정된 스택 영역 사이즈에 대한 마진 값 이상의 스택이 사용될 경우 임시 스택 영역을 추가로 할당하여 스택 결함 원인을 파악하는 방법을 설명하기 위한 흐름도.
도 6은 상기 도 4에 있어서, 최대 스택 사용량과 최초 설정된 스택 영역에서 현재 남은 스택 영역을 비교하여 스택 영역의 부족이 예상될 경우 임시 스택 영역을 추가로 할당하여 스택 결함 원인을 파악하는 다른 방법을 설명하기 위한 예시도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 스택 결함 원인을 진단하는 방법 및 장치의 일 실시예를 설명한다.
이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 중앙처리장치와 메모리부를 포함하는 컴퓨팅 시스템의 개략적인 구성을 보인 예시도이다.
도 1에 도시된 바와 같이, 중앙처리장치(100)(예 : CPU)는 스택 구성으로 이루어지며, 임의의 태스크, 프로세스, 및 응용프로그램(또는 어플리케이션 소프트웨어)의 수행에 따라 상기 컴퓨팅 시스템의 동작을 제어한다.
상기 메모리부(200)는 스택부(201)(또는 스택메모리)를 포함하여 구성된다.
상기 메모리부(200)는 상기 시스템 동작에 필요한 프로그램 데이터와 본 발명에 따른 스택 결함 원인을 진단하는 방법에 따른 프로그램 데이터를 저장한다.
상기와 같이 스택 구성의 중앙처리장치(100)는 모든 명령 수행을 스택 방식으로 처리한다.
상기 중앙처리장치(100)에 의해 실행되는 오퍼레이터 시스템은, 실행 시 각 어플리케이션 소프트웨어들이 정상적으로 수행될 수 있도록 스택부(201)의 스택 영역을 할당하며, 각 어플리케이션들은 할당된 스택 영역을 이용하여 주어진 동작을 수행한다.
이러한 어플리케이션 실행 시 스택 결함(또는 스택 오류, 스택 오버플로우 오류)이 발생하기 전, 또는 임의의 어플리케이션 소프트웨어 실행 시 스택 결함의 발생을 방지한 상태에서 그 스택 결함이 발생할 수 있는 상태가 되었을 경우, 이 상태(즉, 스택 결함이 발생할 수 있는 상태)가 되는 것을 감지하여 그 원인(즉, 스택 결함이 발생하는 원인)을 진단하거나 파악할 수 있도록 한다.
즉, 상기 중앙처리장치(100)는 본 발명의 일 실시예에 따라 도 2 내지 도 5에 도시된 바와 같은 방법으로 스택 결함이 발생하는 원인을 진단할 수 있도록 한다.
도 2는 본 발명의 일 실시예에 따라 어플리케이션들이 스택에 히스토리를 기록하는 과정을 설명하기 위한 흐름도이고, 도 3은 상기 도 2에 있어서, 태스크(task)의 수행에 따라 스택 포인터를 저장하고 반환하는 과정에서 스택 결함이 발생하는 상황을 예시적으로 설명하기 위하여 보인 예시도이다.
도 2에 도시된 바와 같이, 중앙처리장치(100)는 어플리케이션 소프트웨어를 수행하는 과정에서 컨텍스트 스위칭(Context Switching)시 저장(Save)과 복원(Restore)을 수행함에 따라, 스택에 태스크 아이디(TaskID)(또는 컨텍스트)와 스택 포인터(Stack Pointer)를 기록한다.
즉, 도 2를 참조하면, 제1 컨텍스트가 입력(Enter)될 경우(S101) 이에 대한 이벤트(Event 1)를 스택 히스토리로서 기록한다(S102).
그리고 상기 제1 컨텍스트에 포함된 프로그램 함수(즉, 코드(code))를 수행한다(S103). 이때 상기 코드 수행 중 제2 컨텍스트가 입력(Enter)될 경우(S201), 이에 대한 이벤트(Event 2)를 스택 히스토리로서 기록한다(S202).
그리고 상기 제2 컨텍스트에 포함된 프로그램 함수(즉, 코드(code))를 수행하며(S203), 상기 프로그램 함수(즉, 코드(code))의 수행이 완료되면 이에 대한 이벤트(Event 3)를 스택 히스토리로서 기록한 다음(S204), 상기 제2 컨텍스트의 수행(S203)이 완료됨에 따라 상기 제2 컨텍스트를 탈출(Exit)하여(S205), 이전의 프로그램 함수(즉, 코드(code))에 복귀한다.
다음 상기 제1 컨텍스트의 수행(S103)이 완료됨에 따라, 이에 대한 이벤트(Event 4)를 스택 히스토리로서 기록하고(S104) 상기 제1 컨텍스트를 탈출(Exit)한다(S105).
참고로 상기 제2 컨텍스트가 입력될 경우(S201) 우선순위가 선점되는 과정에서 스택 포인터를 저장하고, 상기 제2 컨텍스트의 처리가 완료되어 상기 제1 컨텍스트로 우선순위가 복귀될 때(S205) 스택 포인터를 복원한다.
한편 도 3을 참조하면, 첫 번째 태스크(Task 1)가 입력될 때 스택 포인터가 0x700 이고, 두 번째 태스크(Task 2)가 입력될 때 스택 포인터가 증가되어 0x780이 되었으며, 두 번째 태스크(Task 2)가 종료되어 첫 번째 태스크(Task 1)로 복귀될 때 증가되었던 스택 포인터 Ox780을 반환하고, 이와 마찬가지로 첫 번째 태스크(Task 1)가 종료되면 이전의 스택 포인터 0x700을 반환해야 되지만, 그렇지 못하고 0x710을 반환하는 스택 결함이 발생되는 상황을 나타낸다.
도 4는 상기 도 2에 있어서, 스택에 미리 기록된 히스토리를 바탕으로 스택 결함 원인을 파악하는 과정을 설명하기 위한 흐름도이다.
도 4를 참조하면, 스택 결함이 발생할 경우(S301), 중앙처리장치(100)는 이전에 저장했던 스택 히스토리(예 : 컨텍스트와 스택 포인터 값)를 반환한다(S302).
상기와 같이 스택 히스토리(예 : 컨텍스트와 스택 포인터 값)가 반환되면, 이를 참조하여 중앙처리장치(100)는 비정상 컨텍스트들(즉, 스택 결함의 원인이 되는 후보 컨텍스트들)이 검출될 경우(S303의 예), 해당 비정상 컨텍스트들을 분석하여 스택 결함의 원인(예 : 스택 결함을 발생시키는 컨텍스트)을 파악한다(S304).
상기 스택 결함의 원인을 파악하는 방법에 대해서 도 5를 참조하여 좀 더 구체적으로 설명한다.
도 5는 상기 도 4에 있어서, 최초 설정된 스택 영역 사이즈에 대한 마진 값 이상의 스택이 사용될 경우 임시 스택 영역을 추가로 할당하여 스택 결함 원인을 파악하는 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 중앙처리장치(100)는 컨텍스트의 입력(Enter)과 탈출(Exit)이 반복되는 과정에서 스택 사용량이 최초 설정된 스택 영역 사이즈(size)에 대하여 미리 지정된 마진 값(예 : 스택 영역 사이즈 100%에 대하여 80%로 지정된 마진 값)에 도달할 경우(S401), 임시 스택 영역을 동적으로 추가 할당한다(S402).
예컨대 어플리케이션 소프트웨어에 최초 설정된 스택 영역의 사이즈가 10(즉, 100%)이라고 가정하고, 미리 지정된 마진 값이 8(즉, 80%)이라고 가정할 때, 상기 어플리케이션 소프트웨어 실행 중 스택 사용량이 상기 미리 지정된 마진 값 8(즉, 80%) 이상이 되면, 중앙처리장치(100)가 임시 스택 영역(예 : 최초 설정된 스택 영역 사이즈의 100%)을 동적으로 추가 할당한다. 상기와 같이 마진 값 이상의 스택 사용이 감지됨에 따라 임시 스택 영역이 동적으로 추가 할당됨으로써, 해당 어플리케이션 소프트웨어 실행 중 스택 결함의 발생을 방지할 수 있는 상태가 되는 것이다.
따라서 이후로 새로운 컨텍스트가 입력될 경우(즉, 스택을 사용하는 새로운 이벤트가 추가로 발생할 경우), 중앙처리장치(100)는 최초 설정된 스택 영역에서 이미 사용된 스택 영역(예 : 80%)과 동적으로 추가 할당된 임시 스택 영역(예 : 100%)에서 추가로 사용된 스택 영역(예 : 25%)의 총 합(예 : 105%)이 최초 설정된 스택 영역의 사이즈(즉, 100%)를 초과한 경우(S403의 예), 스택 결함(에러)이 발생되었음을 알람하고 스택 히스토리(예 : 컨텍스트와 스택 포인터 값)를 반환한다(S405).
이때 기존에는 스택 결함이 발생할 경우 컴퓨팅 시스템이 다운되거나 리셋되는 상황이 발생하지만, 본 실시예에서는 스택 결함 에러가 발생된 것만 알람하고 컴퓨팅 시스템이 다운되는 상황은 발생하지 않는다. 즉, 본 실시예에서는 이미 동적으로 추가 할당된 임시 스택 영역(예 : 최초 설정된 스택 영역 사이즈의 100%)을 사용하고 있는 상황이므로, 상기 스택 결함은 복구 가능한 에러가 되는 것이다.
이에 따라 중앙처리장치(10))는 사용자 인터페이스(UI)를 통해 사용자에게 어플리케이션 소프트웨어의 계속 진행(실행) 여부를 체크하여(S406), 계속 진행이 선택될 경우(S406의 예) 상기 S401 단계 내지 S406 단계를 반복 수행하면서 스택 결함이 발생하는 다른 추가 원인(예 : 추가로 스택 결함을 발생시키는 컨텍스트)을 계속해서 파악할 수 있다. 또한 상기 중앙처리장치(10)는 사용자가 계속 진행을 선택하지 않을 경우(S406의 아니오) 계속 진행(실행)을 종료함으로써, 사용자에게 상기 파악된 원인(예 : 스택 결함을 발생시키는 컨텍스트)을 제거하기 위한 작업(예 : 어플리케이션 소프트웨어의 코드 수정)을 수행할 수 있도록 한다.
예컨대 상기 중앙처리장치(10)는 상기 스택 히스토리의 분석을 통해(즉, 스택 히스토리에 포함되어 있는 컨텍스트와 스택 포인터 값의 분석을 통해) 어떤 컨텍스트가 스택 포인터를 비정상적으로 증가시키고 복원(Restore)시키지 못했는지 파악하여 사용자 인터페이스(UI)를 통해 표시한다. 즉, 어떤 컨텍스트가 가용한 스택 사이즈보다 많은 스택을 필요로 했는지 파악하여 사용자 인터페이스(UI)를 통해 표시한다. 이에 따라 사용자에게 상기 파악된 원인(예 : 스택 결함을 발생시키는 컨텍스트)을 제거하기 위한 작업(예 : 어플리케이션 소프트웨어의 코드 수정)을 수행할 수 있게 되는 것이다.
상기와 같이 본 실시예는 임의의 어플리케이션 소프트웨어 실행 시 스택 결함의 발생을 방지한 상태(예 : 동적으로 임시 스택 영역을 추가로 할당한 상태)에서 그 스택 결함이 발생할 수 있는 상태가 되었을 경우(즉, 최초 설정된 스택 영역에서 이미 사용된 스택 영역과 동적으로 추가 할당된 임시 스택 영역에서 추가로 사용된 스택 영역의 총 합이 최초 설정된 스택 영역의 사이즈를 초과한 경우), 이 상태(즉, 스택 결함이 발생할 수 있는 상태)가 되는 것을 감지하여 그 원인(즉, 스택 결함이 발생하는 원인)을 진단하거나 파악할 수 있도록 한다.
한편 상기 실시예에서는 마진 값을 최초 설정된 스택 영역 사이즈에 대하여 설정하였으나, 다른 실시예에서는 상기 마진 값을 다른 방식으로 설정할 수 있다.
도 6은 상기 도 4에 있어서, 최대 스택 사용량과 최초 설정된 스택 영역에서 현재 남은 스택 영역을 비교하여 스택 영역의 부족이 예상될 경우 임시 스택 영역을 추가로 할당하여 스택 결함 원인을 파악하는 다른 방법을 설명하기 위한 예시도이다.
도 6에 도시된 바와 같이, 중앙처리장치(10)는 컨텍스트 스위칭 시 이벤트가 발생할 때마다 사용했던 최대 스택 사용량을 기록한다. 즉, 누적된 스택 사용량 중 해당 컨텍스트가 사용한 스택의 최대 사용량을 기록한다.
또한 상기 중앙처리장치(10)는 최초 설정된 스택 영역에서 현재 남은 스택 영역의 사이즈를 산출한다.
또한 상기 중앙처리장치(10)는 현재 남은 스택 영역의 사이즈와 지금까지 해당 컨텍스트가 사용한 스택의 최대 사용량을 비교하여, 즉, 최대 사용량(즉, 필요 Size)에 지정된 마진 값(예 : 20%)을 합산한 용량(즉, 필요 Size + 마진 값)이 현재 남은 스택 영역의 사이즈(즉, 남은 Size)보다 큰 경우, 추가적인 동적 스택 영역의 할당이 필요한 것으로 판단하여 임시 스택 영역을 동적으로 추가 할당한다.
예컨대 제1 태스크(Task1)의 경우 최대 사용량이 0x20이고 현재 남은 스택 영역의 사이즈도 0x20인 경우 추가적인 동적 스택 할당이 필요한 것으로 판단하여 임시 스택 영역을 동적으로 추가 할당한다. 제2 태스크(Task2)의 경우 최대 사용량이 0x30이고 현재 남은 스택 영역의 사이즈가 0x100인 경우 추가적인 동적 스택 할당이 필요하지 않은 것으로 판단한다. 제3 태스크(Task3)의 경우 최대 사용량이 0x100이고 현재 남은 스택 영역의 사이즈가 0x110인 경우 추가적인 동적 스택 할당이 필요한 것으로 판단하여 임시 스택 영역을 동적으로 추가 할당한다.
이에 따라 해당 어플리케이션 소프트웨어 실행 중 스택 결함의 발생을 방지할 수 있는 상태가 되는 것이다.
이후 상기 도 5에서 설명한 바와 마찬가지로 방식으로, 상기 중앙처리장치(100)는 최초 설정된 스택 영역에 동적으로 추가 할당된 임시 스택 영역에서 사용된 스택 영역의 총 합이 최초 설정된 스택 영역의 사이즈를 초과한 경우, 스택 결함(에러)이 발생되었음을 알람하고 스택 히스토리(예 : 컨텍스트와 스택 포인터 값)를 반환한다.
이에 따라 중앙처리장치(10))는 사용자 인터페이스(UI)를 통해 사용자에게 어플리케이션 소프트웨어의 스택 결함이 발생하는 원인(예 : 스택 결함을 발생시키는 컨텍스트)을 파악할 수 있도록 함으로써, 사용자에게 상기 파악된 원인(예 : 스택 결함을 발생시키는 컨텍스트)을 제거하기 위한 작업(예 : 어플리케이션 소프트웨어의 코드 수정)을 수행할 수 있도록 한다.
상기와 같이 본 실시예는 스택 히스토리(즉, 스택 사용 히스토리)를 기록함으로써 오류 발생시에 원인에 대한 정확한 분석이 가능하며, 스택 결함이 발생하지 않더라도 스택에 얼마나 여유가 있는지 검토하고 마진을 설계할 수 있는 효과가 있으며, 특정 소프트웨어 기능이 비정상적으로 많은 스택을 차지하는지 미리 검출할 수 있고, 또한 만약 소프트웨어의 실행중에 스택 결함(오류)가 발생하더라도 프로그램 손상없이 해결이 가능하게 하는 효과가 있다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다. 또한 본 명세서에서 설명된 구현은, 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의(예컨대, 방법으로서만 논의)되었더라도, 논의된 특징의 구현은 또한 다른 형태(예컨대, 장치 또는 프로그램)로도 구현될 수 있다. 장치는 적절한 하드웨어, 소프트웨어 및 펌웨어 등으로 구현될 수 있다. 방법은, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍 가능한 로직 디바이스 등을 포함하는 프로세싱 디바이스를 일반적으로 지칭하는 프로세서 등과 같은 장치에서 구현될 수 있다. 프로세서는 또한 최종-사용자 사이에 정보의 통신을 용이하게 하는 컴퓨터, 셀 폰, 휴대용/개인용 정보 단말기(personal digital assistant: "PDA") 및 다른 디바이스 등과 같은 통신 디바이스를 포함한다.
100 : 중앙처리장치
200 : 메모리부
201 : 스택부
200 : 메모리부
201 : 스택부
Claims (16)
- 중앙처리장치와 스택 메모리를 포함하는 컴퓨팅 시스템에서 스택 결함 원인을 진단하는 방법에 있어서,
어플리케이션 소프트웨어의 실행에 따라 컨텍스트의 입력과 탈출이 반복되는 과정에서, 상기 중앙처리장치가 스택 결함 발생을 감지하는 단계;
상기 스택 결함이 발생할 경우, 상기 중앙처리장치가 스택 히스토리를 반환하는 단계; 및
상기 스택 히스토리가 반환되면, 상기 중앙처리장치가 상기 스택 히스토리에 기초하여 스택 결함을 발생시키는 컨텍스트를 파악하는 단계;를 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 1항에 있어서, 상기 스택 히스토리는,
컨텍스트와 스택 포인터 값을 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 1항에 있어서, 상기 스택 결함 발생을 감지하는 단계 이전에,
상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 상기 중앙처리장치가, 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달하는지 체크하는 단계; 및
상기 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달할 경우에 임시 스택 영역을 동적으로 추가 할당하는 단계;를 더 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 1항에 있어서, 상기 스택 결함 발생을 감지하는 단계 이전에,
상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 상기 중앙처리장치가, 컨텍스트 스위칭 시 이벤트가 발생할 때마다 사용했던 최대 스택 사용량을 기록하고, 최초 설정된 스택 영역에서 현재 남은 스택 영역의 사이즈를 산출하는 단계; 및
상기 중앙처리장치가, 현재 남은 스택 영역의 사이즈와 해당 컨텍스트가 사용한 스택의 최대 사용량을 비교하여, 상기 최대 사용량에 지정된 마진 값을 합산한 스택 용량이 현재 남은 스택 영역의 사이즈보다 큰 경우, 추가적인 동적 스택 영역의 할당이 필요한 것으로 판단하여 임시 스택 영역을 동적으로 추가 할당하는 단계;를 더 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 3항 또는 4항에 있어서, 상기 스택 결함 발생을 감지하는 단계에서,
상기 중앙처리장치는,
최초 설정된 스택 영역에서 이미 사용된 스택 영역과 상기 동적으로 추가 할당된 임시 스택 영역에서 추가로 사용된 스택 영역의 총 합이 상기 최초 설정된 스택 영역의 사이즈를 초과한 경우, 스택 결함이 발생된 것으로 감지하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 1항에 있어서, 상기 스택 히스토리에 기초하여 스택 결함을 발생시키는 컨텍스트를 파악하는 단계에서,
상기 중앙처리장치는,
컨텍스트가 입력될 때 저장한 스택 포인터와 상기 컨텍스트가 종료되어 복귀할 때 반환하는 스택 포인터가 다른 경우에 스택 결함을 발생시키는 컨텍스트로 파악하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 1항에 있어서,
상기 스택 결함을 발생시키는 컨텍스트를 파악하는 단계 이후,
상기 중앙처리장치가,
상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시하는 단계;를 더 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 제 7항에 있어서, 상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시하는 단계 이후,
상기 중앙처리장치가 사용자 인터페이스를 통해 사용자에게 어플리케이션 소프트웨어의 계속 진행 여부를 체크하는 단계; 및
사용자가 계속 진행 선택 시, 상기 중앙처리장치가 어플리케이션 소프트웨어를 계속 실행시켜 스택 결함을 발생시키는 다른 컨텍스트를 계속해서 파악하는 단계;를 더 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 방법.
- 컴퓨팅 시스템의 스택 메모리; 및
상기 컴퓨팅 시스템에서 어플리케이션 소프트웨어의 실행에 따라 컨텍스트의 입력과 탈출이 반복되는 과정에서 스택 결함 발생을 감지하는 중앙처리장치;를 포함하고,
상기 스택 결함이 발생할 경우,
상기 중앙처리장치가 스택 히스토리를 반환하고, 상기 반환된 스택 히스토리를 분석하여 스택 결함을 발생시키는 컨텍스트를 파악하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 9항에 있어서, 상기 스택 히스토리는,
컨텍스트와 스택 포인터 값을 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 9항에 있어서, 상기 중앙처리장치는,
상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 스택 결함 발생을 감지하는 단계 이전에, 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달하는지 체크하고,
상기 스택 사용량이 최초 설정된 스택 영역 사이즈에 대하여 미리 지정된 마진 값에 도달할 경우에 임시 스택 영역을 동적으로 추가 할당하는 것을 더 포함하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 9항에 있어서, 상기 중앙처리장치는,
상기 스택 결함 발생 시 컴퓨팅 시스템이 다운되거나 리셋되는 것을 방지하기 위하여, 스택 결함 발생을 감지하는 단계 이전에, 컨텍스트 스위칭 시 이벤트가 발생할 때마다 사용했던 최대 스택 사용량을 기록하고, 최초 설정된 스택 영역에서 현재 남은 스택 영역의 사이즈를 산출하고,
현재 남은 스택 영역의 사이즈와 해당 컨텍스트가 사용한 스택의 최대 사용량을 비교하여, 상기 최대 사용량에 지정된 마진 값을 합산한 스택 용량이 현재 남은 스택 영역의 사이즈보다 큰 경우, 임시 스택 영역을 동적으로 추가 할당하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 11항 또는 12항에 있어서, 상기 중앙처리장치는,
최초 설정된 스택 영역에서 이미 사용된 스택 영역과 상기 동적으로 추가 할당된 임시 스택 영역에서 추가로 사용된 스택 영역의 총 합이 상기 최초 설정된 스택 영역의 사이즈를 초과한 경우, 스택 결함이 발생된 것으로 감지하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 9항에 있어서, 상기 중앙처리장치는,
컨텍스트가 입력될 때 저장한 스택 포인터와 상기 컨텍스트가 종료되어 복귀할 때 반환하는 스택 포인터가 다른 경우에 스택 결함을 발생시키는 컨텍스트로 파악하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 9항에 있어서, 상기 중앙처리장치는,
상기 스택 결함을 발생시키는 컨텍스트를 파악하면,
상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
- 제 15항에 있어서, 상기 중앙처리장치는,
상기 스택 결함을 발생시키는 컨텍스트를 사용자 인터페이스를 통해 표시한 이후, 상기 사용자 인터페이스를 통해 사용자에게 어플리케이션 소프트웨어의 계속 진행 여부를 체크하고,
사용자가 계속 진행 선택 시, 어플리케이션 소프트웨어를 계속 실행시켜 스택 결함을 발생시키는 다른 컨텍스트를 계속해서 파악하는 것을 특징으로 하는 스택 결함 원인을 진단하는 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190151477A KR102300712B1 (ko) | 2019-11-22 | 2019-11-22 | 스택 결함 원인을 진단하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190151477A KR102300712B1 (ko) | 2019-11-22 | 2019-11-22 | 스택 결함 원인을 진단하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210063519A true KR20210063519A (ko) | 2021-06-02 |
KR102300712B1 KR102300712B1 (ko) | 2021-09-13 |
Family
ID=76372632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190151477A KR102300712B1 (ko) | 2019-11-22 | 2019-11-22 | 스택 결함 원인을 진단하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102300712B1 (ko) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030060376A (ko) * | 2002-01-08 | 2003-07-16 | 삼성전자주식회사 | 안정된 스택 추적 방법 |
KR20080064577A (ko) * | 2007-01-05 | 2008-07-09 | 삼성전자주식회사 | 임베디드 시스템의 스택 오버플로우 방지 방법 및 장치 |
JP2009205484A (ja) * | 2008-02-28 | 2009-09-10 | Nec Corp | 障害原因解析支援装置、方法及びプログラム |
KR100928865B1 (ko) * | 2008-02-28 | 2009-11-30 | 주식회사 안철수연구소 | 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치 |
JP2017162135A (ja) * | 2016-03-09 | 2017-09-14 | 三菱電機株式会社 | 情報処理装置、デバッグシステムおよびスタックオーバフロー検出方法 |
KR20190108712A (ko) * | 2018-03-15 | 2019-09-25 | 한양대학교 에리카산학협력단 | 비휘발성 주기억장치 환경에서 에러 복구 방법 및 그 시스템 |
-
2019
- 2019-11-22 KR KR1020190151477A patent/KR102300712B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030060376A (ko) * | 2002-01-08 | 2003-07-16 | 삼성전자주식회사 | 안정된 스택 추적 방법 |
KR20080064577A (ko) * | 2007-01-05 | 2008-07-09 | 삼성전자주식회사 | 임베디드 시스템의 스택 오버플로우 방지 방법 및 장치 |
JP2009205484A (ja) * | 2008-02-28 | 2009-09-10 | Nec Corp | 障害原因解析支援装置、方法及びプログラム |
KR100928865B1 (ko) * | 2008-02-28 | 2009-11-30 | 주식회사 안철수연구소 | 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치 |
JP2017162135A (ja) * | 2016-03-09 | 2017-09-14 | 三菱電機株式会社 | 情報処理装置、デバッグシステムおよびスタックオーバフロー検出方法 |
KR20190108712A (ko) * | 2018-03-15 | 2019-09-25 | 한양대학교 에리카산학협력단 | 비휘발성 주기억장치 환경에서 에러 복구 방법 및 그 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR102300712B1 (ko) | 2021-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8397111B2 (en) | Software memory leak analysis using memory isolation | |
US8516462B2 (en) | Method and apparatus for managing a stack | |
JP4770602B2 (ja) | 電子機器 | |
JP2007157131A (ja) | ガベージ・コレクション対応の仮想マシンにおいて、将来のメモリ不足例外を自動予測する方法、コンピュータ読み取り可能な媒体、及びコンピューティング・デバイス | |
US20140164827A1 (en) | Method and device for managing hardware errors in a multi-core environment | |
US20080127112A1 (en) | Software tracing | |
US20080276129A1 (en) | Software tracing | |
US9436534B2 (en) | Method and system for preemptive detection of occurrence of faulty conditions based on resource usage | |
CN113032215B (zh) | 线程快照解析方法、装置、设备和存储介质 | |
US8099717B2 (en) | Tracking method for embedded system | |
JP5359601B2 (ja) | ダンプ出力制御装置、ダンプ出力制御プログラム、ダンプ出力制御方法 | |
CN108415765B (zh) | 任务调度方法、装置及智能终端 | |
CN110633190A (zh) | 一种应用程序内存监控方法、装置、设备及存储介质 | |
CN112667317A (zh) | 一种异常耗时检测方法、装置、电子设备及存储介质 | |
US20240152439A1 (en) | Detection Method and Electronic Device | |
KR102300712B1 (ko) | 스택 결함 원인을 진단하는 방법 및 장치 | |
CN111831436B (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
KR100697988B1 (ko) | 과도한 인터럽트로부터 시스템을 보호하는 장치 및 그 방법 | |
JP2009176139A (ja) | Os優先度変更装置及びos優先度変更プログラム | |
US20130318310A1 (en) | Processor processing method and processor system | |
CN111831442A (zh) | 一种资源分配的方法、装置、存储介质及电子设备 | |
JP2009205208A (ja) | 運用管理装置、運用管理方法ならびにプログラム | |
US9348667B2 (en) | Apparatus for managing application program and method therefor | |
US7769976B2 (en) | Identifying code that wastes virtual memory | |
US7814288B2 (en) | Protecting memory operations involving zero byte allocations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |