2013-02-07 13 views
8

Mam zrzutu pamięci generowane po awarii segmentacji. Czy istnieje sposób w gdb (lub jakoś inaczej), aby zobaczyć czas systemowy, kiedy to się stało?Jak uzyskać czas systemowy ze zrzutu pamięci głównej?

Nie mogę użyć czasu utworzenia pliku zrzutu pamięci głównej, ponieważ został on wysłany do mnie bez tej informacji meta.

+9

Myślę, że to dość trudne, chyba że zdarzy się, że znasz pewną zmienną gdzieś, która zawiera aktualny czas. Następnym razem poproś klienta, aby spakował plik z 'tar zcf core.tar.gz core' - wtedy zajmuje mniej miejsca, a znacznik czasu jest przechowywany w archiwum tar. –

+1

Podobne (ale dla Solaris): http://stackoverflow.com/questions/10739334/get-the-creation-time-from-core-dump –

+0

Biorąc pod uwagę, że większość systemów plików nie przechowuje czasu utworzenia, nie jest zaskakujące, że informacja jest niedostępna. –

Odpowiedz

3

Czas systemowy (niestety) nie jest domyślnie przechowywany w pliku core. Masz kilka opcji. Jedną z nich jest zmiana nazwy pliku rdzenia w celu uwzględnienia czasu systemowego.

Możesz przeczytać więcej na ten temat here.

Zasadniczo, chcesz wstawić "% t" do nazwy pliku core.

Jeśli używasz niestandardowego jądra, masz więcej opcji.

Na przykład możesz zmienić strukturę elf_prstatus, aby zawierała inne rzeczy, które możesz chcieć. Jest to opcja, która nie jest bezbolesna, ponieważ narzędzia z półki nie zawsze mogą być szczęśliwe. Możesz dodać własną notatkę do pliku podstawowego i dołączyć informacje o aplikacji, które możesz następnie zrzucić i sprawdzić za pomocą readelf.

0

Sposób, w jaki sprawdzam, kiedy tworzony jest zrzut pamięci, wykonując "ls-lrt" katalogu, w którym wygenerowano rdzeń.

+0

A jeśli plik podstawowy został skopiowany z jednego miejsca do drugiego? Pytający mówi: "Nie mogę użyć czasu utworzenia pliku głównego zrzutu, ponieważ został on wysłany do mnie bez tej informacji meta". – amrith

+0

Tak, mój zły .. Jedynym sposobem jest, aby poprosić klienta, aby zrobić 'ls-lrt' na katalogu i wysłać coredump wzdłuż. Tak właśnie robiliśmy w moim starym projekcie. –

Powiązane problemy