GNU/Linux >> Belajar Linux >  >> Linux

Nyalakan core/crash dump secara terprogram

Saya menemukan solusi yang berfungsi. File inti sekarang sedang dibuat.

struct rlimit core_limit;
core_limit.rlim_cur = RLIM_INFINITY;
core_limit.rlim_max = RLIM_INFINITY;

if (setrlimit(RLIMIT_CORE, &core_limit) < 0)
    fprintf(stderr, "setrlimit: %s\nWarning: core dumps may be truncated or non-existant\n", strerror(errno));

Kredit diberikan di sini:http://adamrosenfield.com/blog/2010/04/23/dumping-core/


jika Anda ingin memeriksa batas Anda saat ini untuk proses Anda dari

struct rlimit  v;   //you can decelare any variable

getrlimit(RLIMIT_CORE, &v);

printf("softlimit=%d   hardlimit=%d  \n",v.rlim_cur,v.rlim_max);

jika Anda ingin menetapkan batas baru daripada menggunakan kode di bawah ini

///////////////////// tetapkan batas ////////////////////////// ///

mari membuatnya sederhana

struct rlimit v;
v.rlim_cur = 0 ;  //if you do not want the core dump file

/*  v.rlim_cur=RLIM_INFINITY;    //set maximum soft limit of the file(unlimited) */

v.rlim_max = RLIM_INFINITY;    //for reference to the soft limit(unlimited)

setrlimit(RLIMIT_CORE, &v);

Nilai rlim_cur adalah antara 0 dan tak terhingga berarti core dump akan dihasilkan dan dipotong ke ukuran yang ditentukan. Ini berisiko membuat core dump yang tidak lengkap


Linux
  1. Bagaimana cara menginstal Dotnet Core di Centos 7?

  2. Cara menggunakan kdump untuk Analisis Kernel Crash Linux

  3. Cara secara terprogram menyebabkan core dump di C/C++

  1. Dapatkan kecepatan tautan secara terprogram?

  2. Format file core-dump

  3. Linux menemukan id inti Hyper-threaded

  1. GDB dan masalah dengan core dumps

  2. Jeda pemutar video mpv secara terprogram

  3. .NET core X509Store di linux