私はカスタマイズされた組み込みデバイス(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)