HowTo Debug Crashed Linux-program kärnfiler som ett proffs

HowTo Debug Crashed Linux-program kärnfiler som ett proffs på detta

HowTo: Debug Kraschade Linux-program kärnfiler som ett proffs

Slå på kärn File Creation Support

Som standard de flesta Linux-distributioner stänga skapande kärna fil (åtminstone detta är sant för RHEL, CentOS, Fedora och Suse Linux). Du måste använda kommandot ulimit att konfigurera core-filer.

Se den aktuella kärnfil Gränser

Skriv följande kommando:
# Ulimit -c
Exempel utgångar:

Utgången 0 (noll) innebär kärnfil skapas inte.

Ändra kärnfil Gränser

I detta exempel anger storleksgräns kärn filer till 75000 byte:
# Ulimit -c 75000

HowTo: Aktivera kärnfil Dumps för Application kraschar och segmente Fel


Redigera / etc / profile-fil och hitta linje som har följande lydelse att göra ihållande konfiguration:

Uppdatera den på följande sätt:

Spara och stäng filen. Redigera /etc/sysctl.conf skriver:
# Vi /etc/sysctl.conf
Bifoga följande rader:

Spara och stäng filen. Var,

  1. kernel.core_uses_pid = 1 – Lägger urkärningen processer PID till kärn filnamnet.
  2. fs.suid_dumpable = 2 – Se till att få kärn dumpar för setuid program.
  3. kernel.core_pattern = / tmp / core-% e% s-% u-% g-% p-% t – När programmet avslutas onormalt, bör en core-fil visas i / tmp. Den kernel.core_pattern sysctl styr vart kärnfil. Du kan definiera namn kärnan fil med följande mall whih kan innehålla% specifice som är substituerade av följande värden när en kärna fil skapas:
    • %% – En enda tecknet%
    • % p – PID av dumpade process
    • % u – verklig UID av dumpade process
    • % g – verklig GID av dumpat process
    • % s – antal signal orsakar dumpa
    • % t – tid av dump (sekunder sedan 0: 00h, 1 jan 1970)
    • % e – körbar filnamn

    Slutligen, aktivera felsökning för alla appar, anger (Redhat och vänner specifik):
    # echo "DAEMON_COREFILE_LIMIT = ”obegränsad”" gt; gt; / Etc / sysconfig / init
    Ladda inställningarna i /etc/sysctl.conf genom att köra följande kommando:
    # Sysctl -p

    Hur aktiverar jag Kärna Dumpning För specifika Deamon?

    För att möjliggöra kärna dumpning för specifika deamons, lägga till följande rad i filen / etc / sysconfig / daemon-Fil. I det här exemplet, redigera /etc/init.d/lighttped och lägga linje enligt följande:

    Observera att DAEMON_COREFILE_LIMIT är Redhat specifik, för alla andra distributioner lägga konfiguration på följande sätt:

    Spara och stäng filen. Starta om / reload lighttpd:
    # /etc/init.d/lighttpd Omstart
    # SU – lighttpd
    $ Ulimit -c
    Exempel utgångar:

    Nu kan du skicka core-filer till säljaren eller programvara skriver.

    Hur läser jag core-filer?

    Du måste använda kommandot gdb enligt följande:
    $ Gdb / sökväg / till / application / sökväg / till / corefile
    Se gdb kommandot man för mer information.

    strace kommando

    Rekommenderade avläsningar:

    Håll tunned för gdb handledning som kommer förklarar hur man använder genererade kärnfil att spåra problem.

    Du har ett fel i din skriva upp. Snälla rätta.

    Du skrev, "För att möjliggöra kärna dumpning för specifika deamons, lägga till följande rad i filen / etc / sysconfig / daemon-Fil. I det här exemplet, redigera /etc/init.d/lighttped och lägga linje enligt följande:"

    Det bör läsa istället, "För att möjliggöra kärna dumpning för specifika deamons, lägga till följande rad i filen / etc / sysconfig / daemon-Fil. I det här exemplet, redigera / etc / sysconfig / lighttped och lägg linje enligt följande:"

    Den init.d script används för start / avstängning. Sysconfig filen läses av initskriptet att definiera variablerna. Så det borde gå i / etc / sysconfig / lighttped inte /etc/init.d/lighttped

    Källa: www.cyberciti.biz

    Kommentera

    E-postadressen publiceras inte. Obligatoriska fält är märkta *

    2 × tre =