Napisałem niestandardową aplikację do obsługi zrzutu pamięci dla projektu. Zmieniono "/ proc/sys/kernel/core_pattern", aby wywołać mój dump-handler i jego wywołanie pomyślnie.Format pliku core-dump
Teraz problem polega na zapisaniu zrzutu pamięci w pliku rozpoznawanym przez gdb. Obecnie mój dump-handler odczytuje zrzut z STDIN i zapisuje go w pliku "core.dump". Kiedy próbuję załadować ten rdzeń zrzucić do gdb daje mi błąd:
(gdb) ... is not a core dump: File format not recognized
Kiedy uruchomić polecenie „Plik” na standardowym rdzeniem zrzucić to daje mi następujące:
core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './dump_gen'
i na zlecenie generowane wysypisko, 'plik' daje następujące:
core.dump: data
Proszę, może ktoś mi pomóc, jak poprawnie zapisać zrzut-core, aby można go było używać w gdb.
PS: Nie chcę używać standardowego pliku zrzutu pamięci.
Dzięki za szybką odpowiedź. Sprawdziłem twoją metodę i zadziałało, więc spojrzałem na mój kod c i znalazłem błąd w kopiowaniu danych do bufora. Zadziałało. – AvadhP
Mam również do czynienia z tym samym problemem, ale zastanawiam się, co by zrobiły powyższe kroki? czy wygeneruje nam nowy zrzut główny, który można przekazać jako argument do gdb? Dzięki! – sad