Einzelnen Beitrag anzeigen

Nimral

Registriert seit: 21. Sep 2005
18 Beiträge
 
#1

Pointer debuggen (Speicher-Dump)

  Alt 21. Jun 2015, 16:20
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)
  Mit Zitat antworten Zitat