-
1. Data: 2020-04-21 19:05:11
Temat: zrzut pamięci w programie w C++
Od: RM <r...@w...pl>
Napisałem program w C++. Uruchomiony pod VSCode z debuggerem działa
poprawnie, natomiast po kompilacji i uruchomieniu z wiersza poleceń
Linuxa dostaję: 5258 Przerwane (zrzut pamięci)
Co mam zrobić żeby znaleźć błąd w moim programie?
-
2. Data: 2020-04-21 21:01:32
Temat: Re: zrzut pamięci w programie w C++
Od: g...@g...com
W dniu wtorek, 21 kwietnia 2020 19:05:12 UTC+2 użytkownik RM napisał:
> Napisałem program w C++. Uruchomiony pod VSCode z debuggerem działa
> poprawnie, natomiast po kompilacji i uruchomieniu z wiersza poleceń
> Linuxa dostaję: 5258 Przerwane (zrzut pamięci)
> Co mam zrobić żeby znaleźć błąd w moim programie?
Jeżeli błąd jest systematyczny i odpalasz go z linii komend, to wystarczy, że
odpalisz w gdb, tzn. zamiast
$ ./program
napiszesz
$ gdb ./program
i po załadowaniu zrobisz "run". W momencie, gdy się wypierdzieli, będziesz mógł
zrobić ,bt (czyli backtrace).
Możesz też załadować plik zrzutu pamięci do gdb (z tego co pamiętam, nazywa się
"core", ale żeby powstał, być musisz najpierw wywołać "ulimit -s unlimited" czy coś
takiego - bo na niektórych systemach ten plik "core" w ogóle nie powstaje).
W tej chwili nie pamiętam, jak to się robi, ale jak poguglasz, to pewnie łatwo
znajdziesz.
-
3. Data: 2020-05-12 16:40:02
Temat: Re: zrzut pamięci w programie w C++
Od: q...@t...no1 (Queequeg)
g...@g...com wrote:
> Możesz też załadować plik zrzutu pamięci do gdb (z tego co pamiętam,
> nazywa się "core", ale żeby powstał, być musisz najpierw wywołać "ulimit
> -s unlimited" czy coś takiego - bo na niektórych systemach ten plik
> "core" w ogóle nie powstaje).
ulimit -c unlimited
A program skompilować z -O0 -g.
--
https://www.youtube.com/watch?v=9lSzL1DqQn0