Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   DelphiXE5 Aufruf-Stack (https://www.delphipraxis.net/180934-delphixe5-aufruf-stack.html)

hoffst 1. Jul 2014 19:09

DelphiXE5 Aufruf-Stack
 
Wenn ich auf einen Eintrag im Fenster Aufruf-Stack doppelklicke, wird der Quelltext nicht angezeigt.
Stattdessen kommt ein Fenster mit Assembler-Code.
Im Fenster Aufruf-Stack sehen die Einträge folgendermaßen aus :06833ccd TMyClass.acMyActionExecute + $11.
Also wurde ein Stackframe erzeugt und die Referenz-Infos sind vorhanden. Es handelt sich um eine BPL, die mit Debug-Infos geladen wurde.
Welche Einstellungen sind generell vorzunehmen, dass der Quelltext zum Stack angezeigt wird?
Zur Info: Ich habe das Projekt von Delphi XE übernommen, dort hat Alles noch funktioniert.

himitsu 1. Jul 2014 20:13

AW: DelphiXE5 Aufruf-Stack
 
Es gibt eigentlich keine Einstellungen.

Wenn eine Zieladresse (egal ob vom Stackstrace, Haltepunkt, F7 oder F8) so aufgelöst werden kann, daß der Debugger damit den "Anfang" der Befehle trifft, welche mit einer Zeilennummer verknüpft wurden, und dazu auch noch die richtigen Debuginfos (mit den Zeilennummern) gefunden/geladen wurden und auch noch die Unit gefunden wurde, dann wird zum Quellcode gesprungen.
Aber wenn das nicht klappt, dann kann der Debugger eben nur die CPU-Ansicht aufmachen, da er die Codestelle nicht zuordnen konnte.

Ach ja, der Callstack zeigt zufällig immer auf die Rücksprungadresse und manchmal schafft es da der Debugger nicht, den Anfang des Befehls zuzuordnen, vorallem wenn die Befehle der Codezeile noch nicht zu Ende sind.


PS: Das
Delphi-Quellcode:
+ $11
zeigt dir, daß hier keine Code-Zeile zugeordnet werden konnte.
Die zugehörige Codeadresse ist hier 17 Byte nach der im Stacktace genannten "Code-Zeile", bzw. 17 Byte ab dem Einspungpunkt der genannten Methode.

Der schöne Günther 2. Jul 2014 07:47

AW: DelphiXE5 Aufruf-Stack
 
Ich habe es allerdings (XE5) auch manchmal, dass er in das Assembler-Fenster springt obwohl eigentlich überhaupt kein Grund dazu da ist. Doppelklickt man wieder auf die oberste Zeile im Stacktrace-Fenster ist man wieder im Quelltext.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 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