Zapisywanie pliku podstawowego w gdb


90

Czy można zapisać / zrzucić plik core za pomocą gdb? Czasami chcę zapisać plik, aby później go przeanalizować.

Odpowiedzi:


140

Wydaj polecenie „generuj-core-plik” w 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
Zostanie zapisany w bieżącym katalogu roboczym GDB, który można zobaczyć za pomocą pwdpolecenia. Jeśli chcesz to zmienić, możesz to zrobić cd, tak jak w powłoce.
Jonathon Reinhart

3
@Jonathon_Reinhart podaj ścieżkę do pliku podstawowego jako generate-core-filepierwszy argument, jeśli chcesz go zapisać w określonym miejscu
SergA

19

Możesz również użyć gcore <pid>do produkcji rdzeni.


to powinno być w części komentarza
V-rund Puro-hit

8
Zajrzyj na tę stronę stackoverflow.com/help/privileges/comment : Kiedy nie powinienem komentować? .... „Odpowiadanie na pytanie lub dostarczanie alternatywnego rozwiązania istniejącej odpowiedzi;”
Meinew

1
Wygląda na gcoreto, że jest obsługiwany tylko w nowszych wersjach GDB. Stare wymagają generate-core-file.
scai

Wydaje się, że jest to krótka nazwa generate-core-file, oboje robią to samo.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.