저는 맞춤형 임베디드 장치(ARMv7)에서 커널 2.6.35를 실행하고 있습니다. 코어 덤프를 얻으려고 하는데 코어 덤프가 비활성화된 것 같습니다.
내 커널 구성은 여기에서 찾을 수 있습니다. https://pastebin.com/XXZ8YyaA
내 테스트 응용 프로그램은 다음과 같습니다.
int main() {
return 1/0;
}
나는 다음을 기대합니다:
Floating point exception (core dumped)
하지만 대신 이것을 얻으세요:
Floating point exception
코어 덤프가 비활성화되었음을 의미합니다. 내 플랫폼에서 어떻게 활성화하나요? 커널의 기능을 전환하는 옵션은 CONFIG_COREDUMP
커널이 나올 때까지 추가되지 않은 것 같습니다.버전 3.7. 이전 커널에서는 항상 활성화되어 있지 않았습니까?
# ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) unlimited
-m: resident set size (kbytes) unlimited
-u: processes 1710
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 64
-v: address space (kbytes) unlimited
-x: file locks unlimited
-i: pending signals 1710
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
-N 15: unlimited
# ./crash
Floating point exception
답변1
누락된 커널 옵션은 CONFIG_ELF_CORE
.
General setup -> Configure standard kernel features (for small systems) -> Enable ELF core dumps
이 기능을 활성화하면 코어 덤프를 얻을 수 있습니다.
# ./crash
Floating point exception (core dumped)