Entwickler-Ecke

Programmierwerkzeuge - F12 CPU Debugger


DerNetteNachbar - Fr 13.02.09 11:49
Titel: F12 CPU Debugger
Hallo, immer wenn ich F12 im Programm drücke erscheint das CPU Fenster und will mir den Assembler aufzwingen. Obwohl ich einen Code auf F12 hinterlegt haben wird dieser nicht ausgeführt.
Meine Frage nun: wie kann ich es aktivieren bzw. das CPU Fenster auf F12 komplett deaktivieren.

MfG


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 13.02.2009 um 11:01


BenBE - Fr 13.02.09 13:32

Die einfachste Möglichkeit wäre den Fehler zu beheben, wegen dem er das CPU-Fenster anzeigt ...


Narses - Fr 13.02.09 13:45

Moin!

Ich glaube, er meint eher, er möchte nicht durch Drücken von F12 in das CPU-Fenster kommen, weil er da gerne eine Programm-Funktion drauf legen möchte, BenBE. :idea: ;)

AFAIK geht das nicht, wenn man in der IDE ist. :nixweiss:

cu
Narses


BenBE - Fr 13.02.09 13:50

In der IDE ist F12 doch Umschalten zwischen Formular und Unit ???

Ein wenig mehr Informationen wären also nicht schlecht ;-)


DerNetteNachbar - Fr 13.02.09 13:51

Nein nicht in der IDE sondern während der Laufzeit. Und da kommt eben die CPU hoch.


BenBE - Fr 13.02.09 13:54

Dann solltest Du mal schauen: Da kommt sicherlich eine Meldung von der IDE vorher, dass da ein Fehler aufgetreten ist ... Oder etwa nicht???

Ohne die Meldung und den groben Ausschnitt des fehlerhaften Codes können wir auch nichts machen ... Dieses Forum besteht zum Großteil aus Programmierern, keine aus Hellsehern ;-)


Xentar - Fr 13.02.09 13:57

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Dann solltest Du mal schauen: Da kommt sicherlich eine Meldung von der IDE vorher, dass da ein Fehler aufgetreten ist ... Oder etwa nicht???


Ne.. erstell ein neues Projekt, mit einem leeren Formular, starte dieses Projekt, und drück im Programm F12.
Da springt automatisch der Delphi Debugger an - ohne Fehler und ohne dass man irgendeine Zeile Code geschrieben hat.
Passiert auch nur, wenn Delphi läuft. Wenn man die Exe einzeln startet, passiert beim Drücken auf F12 genau nichts.

Weiß nicht, ob man diese Funktion einzeln abstellen kann. Höchstens, den gesamten Debugger ausschalten ;)


DerNetteNachbar - Fr 13.02.09 13:58

Ja du Witzbold ;-), es ist kein Fehler vorhanden, 100%. Das Problem immer noch auf F12 kommt das CPU Fenster und zwar NUR in der Entwicklungsumgebung wenn ich auf Start gehe, ist auch klar warum sollte das Fenster auch von der Shell kommen^^, ist ja kein Fehler da.


BenBE - Fr 13.02.09 14:11

Ah, k. Wusste nicht, dass die IDE sowas macht ;-)

Aber kurz zur Erklärung was da abläuft: Wenn man im eigenen Programm F12 drückt, wird ein weiterer Thread gestartet, der allein die Funktion DbgBreakpoint aufruft. In dieser wird ein INT 3 ausgelöst, wodurch der Debugger angehalten wird und somit das CPU-Fenster kommt. Ein INT 3 außerhalb eines Debuggers hat keine Auswirkungen.

Eine ganze Reihe von Debuggern unterstützen das Ignorieren von INT3-Aufrufen (weil man das Debuggen bei welchen, die's nicht tun, ansonsten nämlich sehr nervig gestalten kann ;-)

Wie und ob das bei Delphi zu konfigurieren geht, müsst ich schauen ... scheint aber nicht der Fall zu sein ...


DerNetteNachbar - Fr 13.02.09 14:43

Ja alles klar, sollte an den Microsoft Dlls liegen, steht zumindestens in diesem Thread:
http://www.delphipraxis.net/topic24054_debuggermeldung+ntdlldbgbreakpoint+verhindern.html&highlight=ntdll
Nur jetzt kommt die CPU nicht mehr allerdings klappt die Tastenverarbveitung auf F12 immer noch nicht. Ob OnKey oder sonst was, einfahc nichts springt an