9
votes

Dump du noyau Linux sans traitement de mort

est-il possible de générer un vidage de base sans tuer le processus? Si oui, quelle est la commande / signal de le faire?

merci, Jim


0 commentaires

3 Réponses :


12
votes

Voir la commande 'gcore', une partie de gdb.


2 commentaires

Cela semble prometteur. J'ai un fichier de base de cette façon. Cependant, le processus que j'analyse se termine dès que je détache GDB. Il se termine également immédiatement si je la rangeais. Savez-vous un moyen de l'empêcher de détecter qu'il est attaché par GDB / Strace? Merci encore!


Vous pouvez exécuter GCORE contre le processus, puis le GDB contre le noyau déversé. Comme: "GCORE 12345; GDB / PATH / CORE BINAIRE.12345"



3
votes

J'ai eu le meilleur succès avec la fixation de GDB en mode batch au programme en cours d'exécution, obtenez une backtrage, puis détachez.

gdb --batch --quiet -ex "set pagination off" -ex "thread apply all bt"
-ex "detach" -ex "quit" pid pid_of_process


1 commentaires

mais la backtrace n'est pas un Coredump



0
votes

Une méthode pour générer un CoreDump directement à partir du programme sans gdb est décrit ici: https://unix.stackexchange.com/questions/11185/dump- processus-noyau-sans-tuer-the-processus

Cela n'a aucun sens que si vous développez. Le principe est du programme de fourchettes et d'augmenter sigabrt de l'enfant.


0 commentaires