아래와 같이 proc에서 오라클 접속 후 대용량의 배열을
선언을하고 초기화 할경우 core dump 가 발생합니다.
EXEC SQL CONNECT :connect_info;
char tmp[104857600];
memset(tmp, 0x00, sizeof(tmp));
printf("tmp[%ld]\n", sizeof(tmp));
dump의 내용은 아래와 같습니다.
도움말을 보려면 'help'를 입력하십시오.
[core에서 메모리 이미지 사용]
기호 정보를 읽는 중 ...경고: 소스가 -g로 컴파일되지 않습니다.
경고: 코어로부터 주소 0xffffffff9bfd0c0에 액세스할 수 없습니다.
Segmentation fault in setrlimit at 0x9000000001dbb54 ($t1)
0x9000000001dbb54 (setrlimit+0x14) e8410028 ld r2,0x28(r1)
(dbx) where
setrlimit(내부 오류: assertion failed at line 3550 in file frame.c
??, 내부 오류: assertion failed at line 3550 in file frame.c
??) at 0x9000000001dbb54
(dbx)
참고사항 : ulimit 정보
ulimit -a
time(seconds) 무제한
file(blocks) 무제한
data(kbytes) 무제한
stack(kbytes) 4194304
memory(kbytes) 무제한
coredump(blocks) 무제한
nofiles(descriptors) 무제한
threads(per process) 무제한
processes(per user) 무제한
고수님들의 조언부탁드립니다. |