Praktisch gesehn und da es in Delphi (eigentlich) keine zentrale Stelle gibt, wo reservierter Speicher "registriert" wird, kann man im Nachhinein garnicht feststellen was sich in welchem Speicherbereich befindet.
Nimm dir einfach mal sowas wie Integer, Records oder ein Array[x..y] of Char. Da hast du nur den Daten-Inhalt im
RAM rumliegen, aber nirgendwo ist die
RTTI direkt damit verknüpft.
(z.B. 4 Byte im Speicher können also ganz gut ein Integer, 4 Bytes, 2 Words, ein Array[0..3] of AnsiChar oder auch garnichts sein, da diese 4 Bytes grade nicht benutzt werden)
Man kann höchstens über windige und nicht immer zuverlässige Tests versuchen rauszufinden, ob es sich z.B. um ein Objekt handet. Seit D2009 könnte man eventuell auch noch AnsiStrings und UnicodeStrings erkennen. (alles immer schön mit der Chance auf viele False-Positives)
Man könnte den FastMM in den FullDebug-Modus versetzen, oder sich selbst dazwischenhängen, dann jeweils beim reservieren von Speicher sich den Stacktrace, bzw. die Rücksprungadresse ansehn, und bekommt so mit wer und von wo die Anfrage kommt, worüber man besser erkennen kann, um was es sich handelt, da der Speicher von Strings und Objekten ja standardmäßig in ganz bestimmten Prozeduren/Methoden reserviert wird.
Wenn man sich diese infos dann alle merkt, dann könnte man auch später oftmals noch gut erkennen was von wo kam.
Es gibt da auch schon ein irgendwelche Frameworks, welche einem dabei helfen. (Ich glaub vor Kurzem war auch was zum Speicheranalysieren hier in der
DP zu finden)