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ą
Świrujące breakpointy
- Rejestracja: dni
- Ostatnio: dni
- Postów: 72
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Może próbujesz debugować aplikację skompilowaną w trybie release / z optymalizacjami?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12269
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Gorlice
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).
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Tuchów
- Postów: 12269
@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).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
spróbuj usunąć wszystkie pliki dcu i przebudować projekt
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1107
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ć.
- Rejestracja: dni
- Ostatnio: dni
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).