Dvakrát tip pro debugger

vložil Radek Červinka 27. června 2022 23:58

Dlouho jsem nepsal o nějaké fintě pro ladění, tak jsem si vzpomněl na takové dvě drobnosti:

Zobrazení dat z memory stream

Samozřejmě se nejedná jen o memory stream jelikož se jedná o populární bázovou třídu tak to použijeme častěji. Pokud jste v místě, kde máte parametr TStream, není nic jednoduššího než přes volání .ClassName zjistit zda se jedná o potomka TMemoryStreamu, objekt přetypovat a použít následující trik (napadl mne, když jsem ladil volání SOAP a pořád jsem logoval stream do souboru abych ho zkontroloval).

Mějme následující:

procedure TForm1.Button1Click(Sender: TObject);
var
  ms: TMemoryStream;
  s: string;
  i: int64;
begin
  ms := TMemoryStream.Create;
  try
    s := 'Hastalavista baby';
    ms.Write(s[1], Length(s));
    i := ms.Size; //<<<<<<<<<<<<<< breakpoint
    ShowMessage(IntToStr(i));
  finally
    ms.Free;
  end;

end;

end.

(pokud máme pouze TStream a jedná se o následníka memory stream, tak si pomůžeme přetypováním na TMemoryStream a pak až následující)

memory stream

Visualizer akceptuje i přetypování na RawByteString

Změna formátu výpisu proměnných

Přiznám se, že tohle jsem nevěděl a je to ostuda. Onehdá jsem potřeboval zobrazit proměnnou jako hexa (přece už nejsem tak šikovný v převodech) a tak jsem se ji snažil zobrazovat přes IntToHex, ale linker funkci vyhodil. Řešení je následující (stačí stisknout tlačítko Help v tom dialogu) - za proměnnou napsat čárku a formát.

format

Tagy:

Praxe

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců