2014-11-06 24 views
5

Piszę mały program. Po uruchomieniu jednej z opcji otrzymuję następujący błąd.Wyświetlanie zrzutów rdzenia

terminate called after throwing an instance of 'std::invalid_argument' 
what(): stoi 
Aborted (core dumped) 

mam szukać w katalogu gdzie przechowywać pliki .cpp i .h, a rdzeń nie pojawiają się tam po tym, jak go uruchomić. Użyłem

ulimit -c unlimited 

I sprawdziłem go

unlimit -a. 

Kiedy uruchomić gdb w moim terminalu i próby uzyskania dostępu do rdzenia otrzymuję następującą odpowiedź

not in executable format: File format not recognized 

jak bym spójrz na mój główny zrzut, żeby zobaczyć, co go powoduje?

Odpowiedz

6

Aby analizować zrzutu pamięci z GDB, przekazać ją jako drugim argument do GDB, po wykonywalnego:

gdb executable core 

GDB załaduje stanu wykonywalnego w tej chwili dumpingowych rdzeń. Będziesz mógł sprawdzić jego pamięć (w tym ślad cofnięcia stosu, jak również wszelkie dane w stercie lub stosie), ale nie będzie w stanie wykonać czynności, które wymagają uruchomienia pliku wykonywalnego (takich jak funkcje krokowe, kontynuowanie lub wywoływanie) .

+0

To zadziałało świetnie! Dziękuję Ci! – maxcollector