core파일을 생성할려면 우선 설정사항을 확인하셔야 합니다.
ulimit -a 하셔서 coredump가 0로 설정되어 있다면, core파일이 생성되지
않습니다.
ulimit -c [사이즈 혹은 unlimited] 을 사용하여 core파일이 생성될 수
있도록 지정하시고
대부분 core파일은 프로그램 오류로 인해 프로그램이 비정상 종료시에
생성되는 파일입니다. 이 core파일은 gdb로 비정상종료 위치를 찾아낼 수 있는데, gdb에서 원활한 디버깅을 위해서는 가급적이면, 프로그램 컴파일시에
gcc 의 -g옵션을 주도록 하세요. 실행파일 사이즈는 커지지만, 필요할 겁니다.
이후 디버깅이 끝나면, 배포할 때 strip 명령으로 실행파일 사이즈를 줄일 수 있습니다.
안녕하세요..^^;
윗글을 읽다가 의문점이 있어 글 올립니다.
실행시 프로세스가 비정상적으로 죽으면서...
/ 디렉토리에 core 을 남기는데요...
이 core을 남기는 위치를 바꿀수는 없는건가요?
ulimit -a 해서 보니까 디렉토리 위치 바꾸는건 안 보여서요...
아시는 분 있으시면 꼭 알려주세요.^^; 감사합니당....
core파일을 생성할려면 우선 설정사항을 확인하셔야 합니다.
ulimit -a 하셔서 coredump가 0로 설정되어 있다면, core파일이 생성되지
않습니다.
ulimit -c [사이즈 혹은 unlimited] 을 사용하여 core파일이 생성될 수
있도록 지정하시고
대부분 core파일은 프로그램 오류로 인해 프로그램이 비정상 종료시에
생성되는 파일입니다. 이 core파일은 gdb로 비정상종료 위치를 찾아낼 수 있는데, gdb에서 원활한 디버깅을 위해서는 가급적이면, 프로그램 컴파일시에
gcc 의 -g옵션을 주도록 하세요. 실행파일 사이즈는 커지지만, 필요할 겁니다.
이후 디버깅이 끝나면, 배포할 때 strip 명령으로 실행파일 사이즈를 줄일 수 있습니다.
아주 잘 설명해 주신듯 합니다.
한가지 더 첨언하자면, 매번 프로세스 돌릴때마다 쉘의 core 설정을 체크하는것도 번거로울 때가 있습니다. 더욱이 segfault내고 프로세스가 죽었는데 ulimit core 설정이 0이라면 대략 낭패 -_-+
저같은 경우는 .bashrc같은 곳에
ulimit -c unlimited
라고 설정해 놓고 개발을 합니다.
아.. 하나더.. 질문 있습니다.defunct 된 프로세스를 ki
아.. 하나더.. 질문 있습니다.
defunct 된 프로세스를 kill -9 로도 못 죽일때는
어쩌죠? 껐다 키나요? ^^;;
“바람에게도 길은 있다. 나는 비로소 나의 길을 가느니. 길은 언제나 어디에나 있다.”
ulimit -c 10000 으로 킬수가 있습니다..코어파일만들기 =
ulimit -c 10000 으로 킬수가 있습니다..
코어파일만들기 =.=
힘내세요.
core 를 gcc가 만들어 준다는 이야기는 처음 듣는데요. core는
core 를 gcc가 만들어 준다는 이야기는 처음 듣는데요. core는 런타임에 OS가 만들어 주는 놈이 아니었던가요.
리부팅하세욧 =.=;
리부팅하세욧 =.=;
힘내세요.
core는
core는 실행하다 세그폴트같은게 떴을 때 그 당시의 메모리 상황을 덤프해 놓은 이미지 아닌가요 ?
컴파일 할 때 나올 녀석은 아닌걸로 압니다.
SOrCErEr
혹시 멀티 쓰레드 프로그램을 gdb로 돌려서 defunct 보신거
혹시 멀티 쓰레드 프로그램을 gdb로 돌려서
defunct 보신거 아닌가요?
에러나서 좀비 된것이 아닌 이상 gdb로 안돌리고 기냥 실행 시키면
정상적으로 프로세스 뜨고 죽고 다 합니다.
아지랑이류 초환상 공콤 화랑... 포기하다.. T.T
core 파일을 원하는 거라면, Solaris라면[code:1]
core 파일을 원하는 거라면, Solaris라면
하시면 pid의 현재 image가 core로 떨어집니다.
그외 core의 생성은 processes의 비정상적인 작동에 의해 생기겠죠..
>/dev/null 2>&1
core파일을 생성할려면 우선 설정사항을 확인하셔야 합니다.ulimi
core파일을 생성할려면 우선 설정사항을 확인하셔야 합니다.
ulimit -a 하셔서 coredump가 0로 설정되어 있다면, core파일이 생성되지
않습니다.
ulimit -c [사이즈 혹은 unlimited] 을 사용하여 core파일이 생성될 수
있도록 지정하시고
대부분 core파일은 프로그램 오류로 인해 프로그램이 비정상 종료시에
생성되는 파일입니다. 이 core파일은 gdb로 비정상종료 위치를 찾아낼 수 있는데, gdb에서 원활한 디버깅을 위해서는 가급적이면, 프로그램 컴파일시에
gcc 의 -g옵션을 주도록 하세요. 실행파일 사이즈는 커지지만, 필요할 겁니다.
이후 디버깅이 끝나면, 배포할 때 strip 명령으로 실행파일 사이즈를 줄일 수 있습니다.
core 파일 생성 위치는...
안녕하세요..^^;
윗글을 읽다가 의문점이 있어 글 올립니다.
실행시 프로세스가 비정상적으로 죽으면서...
/ 디렉토리에 core 을 남기는데요...
이 core을 남기는 위치를 바꿀수는 없는건가요?
ulimit -a 해서 보니까 디렉토리 위치 바꾸는건 안 보여서요...
아시는 분 있으시면 꼭 알려주세요.^^; 감사합니당....
.
마음을 가꾸는 방법은??
[quote="yeppiguy"]core파일을 생성할려면 우선 설정사항을
아주 잘 설명해 주신듯 합니다.
한가지 더 첨언하자면, 매번 프로세스 돌릴때마다 쉘의 core 설정을 체크하는것도 번거로울 때가 있습니다. 더욱이 segfault내고 프로세스가 죽었는데 ulimit core 설정이 0이라면 대략 낭패 -_-+
저같은 경우는 .bashrc같은 곳에
ulimit -c unlimited
라고 설정해 놓고 개발을 합니다.
댓글 달기