프로필

이슬술사 작업실
by 이슬술사
2007년 08월 21일〃posted title : 디버거 기능의 구현(7) : 지역변수/매개변수

1. 지역변수 : 함수 내부에서 만들어지는 변수. 함수 호출과 동시에 스택 공간에 메모리가 확보된다.

2. 매개변수 : 지역변수에 속하며, 함수가 호출되었을 때 생성되었다가 사라지기때문에 자동(Auto) 변수라고도 한다.

3. 스택 세그먼트 : 프로그램이 실행되는데 필요한 메모리 영역(함수 전용 메모리). 함수가 호출될 때 필요한 지역변수와 매개변수의 메모리는 스택에 자리잡는다. 그러므로 모든 지역변수는 스택에 위치한다.
    * 스택 프레임은 심볼 테이블에 해당하는 메모리, 복귀주소, 이전 EBP로 구성되어 있다.

4. 변수 값 위치
    - EBP : 스택 프레임의 기준점 (ex. 0x0012FE08 -> 0x0012FF68 , 이전 EBP)
    - EBP + 4 : 복귀 주소 (ex. 0x0012FE0C -> 0x00401441 , 복귀 주소)
    - EBP + 4 + 4n : 매개변수 메모리 (ex. 0x0012FE10 -> n번째 매개변수 값)
    - EBP - 4n : 지역변수 메모리 (ex. 0x0012FE04 -> n번째 지역변수 값)

5. 스택 따라가며 변수값 찾기
    - BOOL SymEnumSymbols( HANDLE hProcess,
                                                ULONG64 BaseOfDll,
                                                PCTSTR Mask,
                                                PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
                                                PVOID UserContext );
    - BOOL CALLBACK SymEnumSymbolsProc( PSYMBOL_INFO pSymInfo,
                                                                        ULONG SymbolSize,
                                                                        PVOID UserContext );
    - BOOL CALLBACK (PENUM_LOCAL_VARS_CALLBACK) ( DWORD dwAddr,
                                                                                              LPCTSTR szType,
                                                                                              LPCTSTR szName,
                                                                                              LPCTSTR szValue,
                                                                                              int iIndexLevel,
                                                                                              PVOID pUserCtx );
by 이슬술사 | 2007/08/21 01:11 | → System Program | 트랙백 | 덧글(0)
트랙백 주소 : http://jbjempire.egloos.com/tb/1419927
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글


<< 이전 페이지 | 다음 페이지 >>

카테고리
이글루링크
메모장
라이프로그
포토로그
rss

skin by 서비