Debagowanie w Delphi procedur obsługujących tablice

Debagowanie w Delphi procedur obsługujących tablice
IN
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.

Od razu zaznaczę, że na wszelki wypadek przeczytałem parę artów o debugowania na wypadek gdyby coś umknęło ale nie znalazłem nic nowego więc pytam.

Mam strukturę (przykładowy kod) do której odwołanie wygląda tak:

Kopiuj
Tablica.arr[ ListaIndexu.ari[i] ].Szt := 100;

Czyli jest Tablica dynamiczna z rekordami i

Kopiuj
ListaIndexu typu array of Integer

Jest procedura przeszukująca i sortująca (a właściwie fragment):

Kopiuj
         for i:= j-1 downto 0 do
         begin
                                   // wstawiłem stringi Si, Sj żeby mieć podgląd na wartości
            Si:= IntToStr( Tablica.arr[ ListaIndexu.ari[i] ].Szt );       
            Sj:= IntToStr( Tablica.arr[ ListaIndexu.ari[j] ].Szt );
            if Tablica.arr[ ListaIndexu.ari[i] ].Szt > Tablica.arr[ ListaIndexu.ari[j] ].Szt
            then begin
               tmp:= ListaIndexu.ari[i];
               ListaIndexu.ari[i]:= ListaIndexu.ari[j];
               ListaIndexu.ari[j]:= tmp;
            end

I teraz pytanie co zrobić żeby w podglądzie Local Variables mi podczas debugowania najprościej podglądać te wartości. Jak na razie jadę na stringach bo wartości typu Tablica.arr[ ListaIndexu.ari[i] ].Szt bezpośrednio pokazać mi nie chce. Jest coś prostszego/ bardziej automatycznego?
Pozdrawiam

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
1

@Integers - czegoś nie rozumiem... Przecież możesz sobie w oknie Watches podglądać nie tylko typy proste, ale także przeglądać pola struktur; Dodając do tego okienka poniższe elementy:

Kopiuj
Tablica.arr[ListaIndexu.ari[i]].Szt
Tablica.arr[ListaIndexu.ari[j]].Szt

Bez problemu będziesz mógł na bieżąco podglądać ich wartości w każdej iteracji pętli; Taka możliwość istniała już w Delphi7 i pewnie we wcześniejszych - to nie jest nowość; Przy debugowaniu pętli możesz także skorzystać z określenia wartości iteratora, od której rozpocznie się debugowanie; Przydatne, jeśli potrzeba sprawdzić końcowe iteracje pętli, bez sprawdzania wszystkich po kolei;

Pokaż deklaracje typów zmiennych Tablica oraz ListaIndexu, to będzie można coś więcej napisać.

IN
  • Rejestracja: dni
  • Ostatnio: dni
0

Dziękuję.

Faktycznie przeoczyłem w artykule Debugowanie
może dlatego, że jest widoczne tylko pod czas pracy krokowej.. tak to jest jak się czyta opisy... szybko.

Ta struktura była przykładowa taka na szybko z palca, żeby było wiadomo, że nie chodzi o "proste" zmienne.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Z tym nie ma problemu - można podglądać dane proste, a także zawarte w strukturach czy klasach (przez np. właściwości); Nawet można podawać wyrażenia, ale jak bardzo skomplikowane to nie sprawdzałem; W każdym razie proste wyrażenia bez problemu działają.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.