Enregistrement du fichier core dans gdb


90

Est-il possible de sauvegarder / vider le fichier core en utilisant gdb? Parfois, je veux enregistrer le fichier pour l'analyser plus tard.

Réponses:


140

Exécutez la commande 'generate-core-file' dans gdb.

(gdb) help generate-core-file
Save a core file with the current state of the debugged process.
Argument is optional filename.  Default filename is 'core.<process_id>'.
(gdb) break main
Breakpoint 1 at 0x400e0b: file utils/udec.c, line 36.
(gdb) r
Starting program: /home/nos/build/utils/udec

Breakpoint 1, main (argc=1, argv=0x7fffffffe9a8) at utils/udec.c:36
36              int fileargc = 1;
(gdb) generate-core-file
Saved corefile core.7336

4
Il sera enregistré dans le répertoire de travail actuel de GDB, visible via la pwdcommande. Si vous avez besoin de le changer, vous pouvez le faire avec cd, comme dans un shell.
Jonathon Reinhart

3
@Jonathon_Reinhart passe le chemin du fichier core comme generate-core-filepremier argument si vous voulez le sauvegarder à un certain endroit
SergA

19

Vous pouvez également utiliser gcore <pid>pour produire des noyaux.


cela devrait être dans la partie commentaire
V-rund Puro-hit

8
Veuillez consulter cette page stackoverflow.com/help/privileges/comment : Quand ne dois-je pas commenter? .... "Répondre à une question ou fournir une solution alternative à une réponse existante;"
Meinew

1
Il semble que ce gcoresoit uniquement pris en charge dans les nouvelles versions de gdb. Les anciens exigent generate-core-file.
scai

Cela semble être un nom court pour generate-core-file, les deux faisant la même chose.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.