Świrujące breakpointy

0

Witajcie,
Mam problem i to spory, chodzi o rozjechane breakpointy w Rio i Sydneyjak sobie z tym poradzic. Brekakpont postawiony na danej linii przenosi się gdzieś w dół na komentarz albo linia wykonująca proocedurę czy cokolwiek innego nie jest brana przez debugger. Ręce opadają

2

Może próbujesz debugować aplikację skompilowaną w trybie release / z optymalizacjami?

0

To raczej nie jest wina środowiska, a debuggera. Dokładnie takie same objawy miewałem w poprzedniej wersji Lazarusa, pomimo tego, że projekt był skompilowany w trybie debug, symbole były w osobnym pliku, a optymalizacje były wyłączone.

0

Pierwszy raz dowiaduję się o czymś takim. W żadnej wersji nie było takich problemów. Być może problem (jeżeli naprawdę istnieje) został stworzony przez użytkownika i występuje jak coś dziwnego się namiesza w ustawieniach... tylko dlaczego w 2 wersjach (Rio i Sydney)? Próbowałeś przebudować projekt? Oczywiście breakpointy działają tylko i wyłącznie w trybie Debug (w release środowisko "wie" gdzie są postawione ale je ignoruje).

0

@kAzek: nigdy się z czymś takim nie spotkałeś? ;)

Sam doświadczyłem takiego zachowania wielokrotnie (co prawda w Lazarusie, ale to samo się działo), ostatnio głównie w projektach takich jak Deep Platformer, CTCT i Richtris. Jeśli dobrze pamietam, takie rzeczy lubiły się dziać w połączeniu z generykami oraz fikuśnymi getterami.

Stawiałem sobie breakpoint na którejś linijce i czekałem aż program się zatrzyma na nim. Następnie debuggowałem linijka po linijce, za pomocą F7 lub F8, w zależności od potrzeb. Czasem bywało tak, że w edytorze podświetlało mi pustą linijkę pomiędzy ciałami metod, albo tę z end; którejś metody. Kod wykonywany był normalnie, ale nie wiedziałem która linijka konkretnie. Dopiero po kilku wciśnięciach F7/F8 edytor zaczynał podświetlać prawidłowe linijki.

Z tego co się dowiedziałem (od chłopaków z forum Lazarusa), nie jest to problem IDE, a debuggera. Po prostu ten nie wspiera pewnych rzeczy obsługiwanych przez Free Pascala, przez co dzieją się takie losowe cuda. Przy czym debugger nigdy nie umierał — przez chwilę edytor kodu wariował, ale wszystko działało prawidłowo i można było debuggować kod (tyle że chwilami bez podglądu aktualnej linii).

0

spróbuj usunąć wszystkie pliki dcu i przebudować projekt

0

też to mam czasami. To bug moim zdaniem.

0

Nie wiem jak w Delphi, ale w C++ Builder przy agresywnych optymalizacjach takie same cyrki potrafią się dziać. W trybie krokowym czasami IDE podświetla losowe linijki kodu, ale zawsze w takiej samej kolejności w danej funkcji/metodzie. Po wyłączeniu optymalizacji jest ok. Przeszukiwałem internet pod tym względem i ludzie tak samo mieli problem przy włączonych optymalizacjach. Nie wiem dlaczego tak się dzieje, jednak jak na moje oko raczej nie powinno tak być.

0
piars napisał(a):

Witajcie,

Mam problem i to spory, chodzi o rozjechane breakpointy w Rio i Sydneyjak sobie z tym poradzic. Brekakpont postawiony na danej linii przenosi się gdzieś w dół na komentarz albo linia wykonująca proocedurę czy cokolwiek innego nie jest brana przez debugger. Ręce opadają

Też miałem to wielokrotnie, pomogło usunięcie sekcji [Breakpoints] w pliku <nazwaProjektu>.dsk (przy zamkniętym środowisku).

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