Jak sprawdzić na czym "wykoleja" się program?

0

Witam

Odpalam program, wykonuje zadanie i nagle wyskakuje "Program przestał działać" i wyrzuca mnie do windy. W jaki sposób mogę sprawdzić która linijka za to odpowiada ?

Kiedyś miałem taki problem gdy próbowalem dzielic zmienną o wartości zero przez jakąś liczbę...

dziekuje za wszelką pomoc

0

program nazywa się debugger.

0

debugger

0

zapewne nie będziesz umiał obsługiwać debuggera, a do prostych programów może nie być potrzebny (choć gorąco zachęcam do nauki obsługi) i wystarczy ta prymitywna metoda:
spróbuj zakomentować kod który podejrzewasz, że sprawia problemy. jeżeli program działa, to zawężaj fragment który zakomentowałeś, aż trafisz na odpowiednią linijkę. ewentualnie tzw. "dupa debugging". wklej przed jakimiś ważniejszymi fragmentami kod:

printf("dupa1"); fflush(stdout);

dla c++:

std::cout << "dupa1" << std::endl;

jeżeli widzisz tekst w konsoli, to znaczy że do tego momentu program jeszcze działał.
choć oczywiście najlepiej było by użyć debuggera.

0

odpalasz debugger i dajesz cały czas step over. Jak program się wykolei to debuger zatrzyma się na tej linijce

0
robcio napisał(a):

odpalasz debugger i dajesz cały czas step over. Jak program się wykolei to debuger zatrzyma się na tej linijce

Po co. Po prostu odpalasz w IDE w trybie debug. Kiedy coś się popsuje IDE pokazuje w której linijce to się stało, dostajesz stack trace itd. Przynajmniej wszystkie IDE jakie znam tak robią.

0

@tobiaso123 jeśli masz trochę czasu to możesz wypróbować którąś z metod opisaną w serii Debug @Gynvael Coldwind http://www.youtube.com/playlist?list=PL5D59D2682ED5B2EA

0

ja korzystam z kaczuszki :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1