Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Liste des Aufruf-Stack vergrößern (https://www.delphipraxis.net/156876-liste-des-aufruf-stack-vergroessern.html)

NTcomputer_0 18. Dez 2010 12:34

Liste des Aufruf-Stack vergrößern
 
Derzeit beschäftige ich mich mit einem Problem, bei dem mein Programm "willkürlich" einfriert - ohne dass ich eine Ahnung habe, wo und woran es liegt. Leider befinden sich beim Debuggen nur 17 Elemente im Aufruf-Stack, die alle aus DLLs und nicht aus meinem Programm stammen - wie kann ich diese Liste "verlängern", bis ich sehe, welche Funktion MEINES Programms den Fehler verursacht?

himitsu 18. Dez 2010 12:38

AW: Liste des Aufruf-Stack vergrößern
 
Mir war so, als wenn da auch mehr angegezeigt werden könnten (abgesehn davon, daß 17 eine komische Zahl ist).

Schalte mal in den Projektoptionen "Stackframes immer erzeugen" ein ... eventuell gibt es ja einfach nur beim 18. Prozeduraufruf (Frame) ein Problem, mit dem Auslesen.

Das hat allerdings nur Einfluß auf dein Programm und nicht auf die DLL, in welcher das Problem ebenfalls liegen kann.
Wenn die DLL von dir ist, dann debugge mal diese, anstatt die EXE.

Und wenn alles nichts hillf, dann kannst du dich immernoch langsam, über Haltepunkte und F7, sowie F8, an die Fehlerstelle ranarbeiten,
bzw. du baust ein Logging-System in dein Programm ein, wo du mitloggst, welche Programmstellen noch erfolgreich abgearbeitet wurden.

NTcomputer_0 18. Dez 2010 13:13

AW: Liste des Aufruf-Stack vergrößern
 
Danke für die Ideen! Die Option Stackframes erzeugen bringt leider keine Änderung. Die DLL ist nicht von mir (sind außerdem mehrere, das Programm stoppt zuletzt bei WaitForSingleObject aus ntdll und kernel32). Werde wohl ein einfaches Loggingsystem einbauen müssen, das mir in Stringliste abgearbeitete Befehle anzeigt, da der Fehler mitunter erst nach Minuten in einer Schleife auftritt.

Christian Seehase 18. Dez 2010 13:35

AW: Liste des Aufruf-Stack vergrößern
 
Zitat:

Zitat von NTcomputer_0 (Beitrag 1069246)
...das Programm stoppt zuletzt bei WaitForSingleObject aus ntdll und kernel32...

Also wenn es bei WaitForSingleObject stehenbleibt, klingt das für mich noch völlig in Ordnung.
Dafür ist die Funktion schliesslich da.

NTcomputer_0 18. Dez 2010 14:10

AW: Liste des Aufruf-Stack vergrößern
 
ich weiß. Genau das ist das merkwürdige, die Funktion kehrt aber nie zurück, und wird von mir auch nicht explizit aufgerufen.

brechi 19. Dez 2010 20:34

AW: Liste des Aufruf-Stack vergrößern
 
Ja wie wirds denn aufgerufen? mit INFINITE? Dann wirst du wohl nen DeadLock im Programm haben.


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