마음의 안정을 찾기 위하여 - 포인터가 유효한지 검사하는 MFC API / 리눅스에는 왜 없는가...? ㅠㅠ
2401011
28
340
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
포인터가 유효한지 검사하는 MFC API / 리눅스에는 왜 없는가...? ㅠㅠ
리눅스 | 2011/02/24 18:21
아래 함수들은 MFC에서 사용되는 메모리 유효성 검사 API 들이다.

BOOL WINAPI IsBadCodePtr(__in  FARPROC lpfn);
BOOL WINAPI IsBadReadPtr(__in  const VOID *lp,  __in  UINT_PTR ucb);
BOOL WINAPI IsBadStringPtr(__in  LPCTSTR lpsz,  __in  UINT_PTR ucchMax);
BOOL WINAPI IsBadWritePtr(__in  LPVOID lp,  __in  UINT_PTR ucb);

오늘 리눅스에서 구동중인 데몬이 갑자기 죽어 원인을 찾아보니 잘못된 메모리 Access......

유효성 검사를 NULL 여부로 체크하고 있는데...
GDB로 Dump파일을 살펴보니 체크하는 부분에서 오류가 나서 세그멘테이션 에러가 발생했다. -_-;

리눅스에서 저런 함수가 있나 찾아봤는데... 못찾았다.... 젠장 ㅠㅠ



2011/02/24 18:21 2011/02/24 18:21
Article tag list Go to top
View Comment 2
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
From. 구차니 2011/02/28 10:27
답글달기삭제
머.. 이건 리눅스가 문제가 아니라 C의 한계 아닌가요 ^^;

아무튼 몇가지 memory pool 관련해서 역주적하는 함수가 있으면
좋겠다 싶긴한데.. OS를 건드려야 할정도라 그런류의 API는 안보이더라구요 ㅠ.ㅠ

예를 들어 해당 포인터에 malloc된 녀석의 크기라던가
해당 포인터의 주소가 엇긋났을때 그 주소가 포함된 블럭의 시작위치
(0xa004의 주소를 문의하면 0xa000~0xa100 에 할당되었다면 0xa000을 알려주는 함수)
이런게 있으면 참 좋겠는데 말이죠 ㅋ
From. 그리움 2011/02/28 11:02
삭제
메모리를 할당한 객체들을 링크드 리스트에 넣어 관리하는데 이게 Free/Allocate를 반복하는 작업이 많거든요.

if (객체) 로 .... 객체 사용 여부를 확인하는데...
저 if 문에서 Segmetation Error를 내뱉으며 데몬이 죽는 경우가 있어서 좀 난감해요 --;
PREV : [1] : NEXT
 
 
 
 
: [1] ... [127][128][129][130][131][132][133][134][135] ... [1323] :
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
전체 (1323)
출판 준비 (0)
My-Pro... (41)
사는 ... (933)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (93)
C Builder (0)
Object... (0)
VC, MF... (10)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (6)
Database (12)
리눅스 (29)
Windows (25)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (21)
잡다한... (7)
프로젝트 (0)
Personal (0)
대통령... (13)
Link (2)