Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Große Strings im Debugger (https://www.delphipraxis.net/211060-grosse-strings-im-debugger.html)

himitsu 23. Jul 2022 00:16

AW: Große Strings im Debugger
 
Zitat:

Zitat von einbeliebigername (Beitrag 1509101)
wenn man wärend des Debugens an einer Stelle den Inhalt eines langen Strings haben will, dann Start -> Auswerten/Ändern,
Delphi-Quellcode:
Copy(<Variable>, 1, 2000)
eingeben und Ausführen. Die erste Zahl entsprechen erhöhen und nochmal. Die Grenze bei Strings im Debugger ist 2k.

Jupp, darum siehe Post #2.

die Grenze "eines" Strings,
aber da wird deine Lösung ihn noch mehr nerven, da er jeden Teilstring manuell auswählen muß.
Bei meinem Vorschlag, hat man insgesamt den ganzen String sichtbar, aber eben auch in vielen kleineren Teilen (gleichzeitig und nicht immer nur ein Teil),
was natürlich dennoch ein Bearbeiten des "ganzen" Strings etwas erschwert.



Lösung wäre dann noch den Debugger dazuzu bringen eine Funktion auszuführen, welche in einer Datei speichert/löscht.


Oder eben ein passender DebugViewer.

einbeliebigername 23. Jul 2022 10:57

AW: Große Strings im Debugger
 
Hallo,

Zitat:

Zitat von himitsu (Beitrag 1509106)
Jupp, darum siehe Post #2.

Bei deinen Lösungsvorschlägen außer DebugView habe ich nicht verstanden wie sie funktionieren sollen. Habe mal mit einem Demoprojekt experimentiert. Und verstehe es immer noch nicht.

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  System.StrUtils,
  System.Classes;

var
  vS: string;
  vI: Integer;

function DepugString(const aStr: String): TStringList;
begin
  Result:= TStringList.Create;
  Result.Text:= aStr;
end;

begin
  try
    for vI:= 0 to 9999 do
      vS:= vS+ IntToHex(vI, 4)+ '|';

//  Auswerten/Ändern -> SplitString(vS,'|') -> Die aufzurufende Funktion SplitString wurde vom Linker entfernt
//  Auswerten/Ändern -> DepugString(vS) -> Die aufzurufende Funktion SplitString wurde vom Linker entfernt
    Writeln(vS);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Haltepunkt auf das
Delphi-Quellcode:
Writeln(vS);
und versuchen den String komplett aus dem Debuger zu bekommen.

Das Problem im Debuger, man kann in der Regel nur das aufrufen was der Linker nicht entfernt hat. Mit Copy hatte ich im Debuger noch nie Probleme.

Musste jetzt aber auch feststellen das mindesten ab 10.4.2 (das hatte ich gerade offen) die mögliche Länge von Standard-Strings im Auswerten/Ändern auf 16381 Zeichen vergrößert wurde.

jaenicke 24. Jul 2022 11:47

AW: Große Strings im Debugger
 
Zitat:

// Auswerten/Ändern -> DepugString(vS) -> Die aufzurufende Funktion SplitString wurde vom Linker entfernt
Du musst die Funktion DebugString natürlich irgendwo als Dummy einmal verwenden, damit der Debugger sie nutzen kann, und sei es, dass du deren Adresse verwendest.

Bei mir klappt das allerdings nicht. Der Stringlisten-Viewer bleibt leer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz