Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Pointer debuggen (Speicher-Dump) (https://www.delphipraxis.net/185577-pointer-debuggen-speicher-dump.html)

Nimral 21. Jun 2015 15:20

Pointer debuggen (Speicher-Dump)
 
Hi allseits,

nach 2 Stunden selber suchen belästige ich euch. Problem: ich habe mir zwei OEM Komponenten (ApolloDB und VirtualTree) eingetreten, die exzessiv Gebrauch von Pointern machen. Dabei kommt es des öfteren zu eigenartigen Phänomenen durch Flüchtigkeitsfehler, z.B. wenn man einen PChar benützt, und den Pascal String auf den er zeigt nicht vorher #0 terminiert. Eigentlich Kleinkram, aber mit fatalen Auswirkungen, und das Finden solcher Fehler ist unglaublich zeitaufwändig.

Ich würde mir erwarten, dass ich im Debug Modus über die "Inspect", "Watch" oder "Evaluate-Modify" Funktionen, auf einen Pointer angewendet, einen Dump des Speicherbereiches bekomme, auf den der Pointer zeigt. Bisher habe ich aber nur einen unglaublich umständlichen Weg gefunden (Speicheradresse im CPU Fenster - Fokus auf dem Memory Dump - mit GoTo eintragen).

Das müsste doch einfacher gehen. Unter "Edit Watch" gibt es ja durchaus zwei vielversprechende Auswahlmöglichkeiten: "Pointer" und "Memory Dump". Stelle ich sie ein, ändert sich allerdings nichts. Auch die Angabe von Pointer^ als Watch hat nichts gebracht. Wozu die beiden Auswahlen überhaupt gut sind ist ebenfalls nicht klar, die Hilfe hat nur "Used for Win32 applications only" als Erklärung parat. Grad zufällig hätte ich genau so eine Applikation vor mir - und nun? Seltsame Hilfe ist das.

Wer hat mir einen Tipp, ob, und wenn ja wie, ich direkt im Watch Fenster einen Speicherdump des Speicherereichs, auf den eine Pointer-Varibale zeigt,
bekommen kann?

Thx,

Armin.

(RAD Studio XE7)

Namenloser 21. Jun 2015 16:49

AW: Pointer debuggen (Speicher-Dump)
 
Vielleicht nicht ganz On-Topic, aber: Eigentlich sind Pascal-Strings immer automatisch 0-terminiert. Wenn sie das bei dir nicht sind, dann hast du irgendwo einen Fehler, den du noch nicht kennst.

Uwe Raabe 21. Jun 2015 17:05

AW: Pointer debuggen (Speicher-Dump)
 
Zitat:

Zitat von Nimral (Beitrag 1306013)
Wer hat mir einen Tipp, ob, und wenn ja wie, ich direkt im Watch Fenster einen Speicherdump des Speicherereichs, auf den eine Pointer-Varibale zeigt,
bekommen kann?

Delphi-Quellcode:
PByteArray(P)^


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.

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