AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CPU-Fenster

Ein Thema von Patrick · begonnen am 16. Apr 2004 · letzter Beitrag vom 1. Aug 2006
Antwort Antwort
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#1

CPU-Fenster

  Alt 16. Apr 2004, 12:42
Hallo,

Ich hab folgendes Problem: Ich starte mein Programm und irgendwann kommt dieses CPU-Fenster. Starte ich mein Programm ohnr Delphi kommt es natürlich nicht. Aber was sagt mir dieses CPU-Fenster, und wie kann ich den Fehler beheben, es handelt sich ja schleißlich um einen Fehler, nur dass der Debugger ihn nicht ausfindig machen kann? Ich meine, mein Programm an sich läuft ja, aber es stört mich einfach.

Der Thread ist immer ein anderer
Im Fenster Links oben steht dies:

ntdll.DbgBreakPoint:
77F65554 int 3
77F65555 ret <-- Hier bleibt er stehen
77F65556 mov, edi, edi
ntdll.DbgUserBreakPoint:

Rechts unten zeigt er immer auf: 77F8C106

Daraus kann ich schon mal erkennen, dass der Fehler immer an der gleichen Stelle auftritt.
Aber wie kann ich weiter aus diesen Anzeigen lesen?
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: CPU-Fenster

  Alt 16. Apr 2004, 13:00
Hi!

ALso bei mir ist es so, dass ich den Haken, um das CPU-Fenster anzeigen zu lassen, entfernen kann.

Dann springt Delphi automatisch im Code an die Stelle, wo der Fehler auftritt.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: CPU-Fenster

  Alt 16. Apr 2004, 13:10
int 3 deutet eher auf einen Breakpoint hin.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: CPU-Fenster

  Alt 16. Apr 2004, 13:15
breakpoint steht ja auch drüber...
bist du sicher dass du keinen breakpoint gesetzt hast?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: CPU-Fenster

  Alt 16. Apr 2004, 13:41
Zitat von Patrick:
ntdll.DbgBreakPoint:
77F65554 int 3
77F65555 ret <-- Hier bleibt er stehen
77F65556 mov, edi, edi
ntdll.DbgUserBreakPoint:
Micro$aft hat in irgendwelchen DLLs die Funktion ntdll.DbgBreakPoint vergessen.
Deshalb muss man zur Laufzeit den Programmcode patchen:
Delphi-Quellcode:
procedure PatchINT3;
var
  NOP : Byte;
  NTDLL: THandle;
  BytesWritten: DWORD;
  Address: Pointer;
begin
  if Win32Platform <> VER_PLATFORM_WIN32_NT then Exit;
  NTDLL := GetModuleHandle('NTDLL.DLL');
  if NTDLL = 0 then Exit;
  Address := GetProcAddress(NTDLL, 'DbgBreakPoint');
  if Address = nil then Exit;
  try
    if Char(Address^) <> #$CC then Exit;

    NOP := $90;
    if WriteProcessMemory(GetCurrentProcess, Address, @NOP, 1, BytesWritten) and
      (BytesWritten = 1) then
      FlushInstructionCache(GetCurrentProcess, Address, 1);
  except
    //Do not panic if you see an EAccessViolation here, it is perfectly harmless!
    on EAccessViolation do ;
    else raise;
  end;
end;

initialization

// nur wenn ein Debugger vorhanden, den Patch ausführen
if DebugHook<>0 then
   PatchINT3;

end.
Das wäre was für die Code-Library; falls jemand Lust hat....
Andreas
  Mit Zitat antworten Zitat
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#6

Re: CPU-Fenster

  Alt 16. Apr 2004, 13:42
Was versteht ihr denn unter einem BreakPiont? Ich hab einen Timer drin, der im Intervall von 10 fast das ganze Programm durchläuft, aber sonst...?

Und wo sollte ich den Code jetzt einfügen und aufrufen???
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: CPU-Fenster

  Alt 16. Apr 2004, 13:55
Ist der Quelltext denn überhaupt verfügbar, um ihn anzeigen zu können ? Der Effekt kommt bei mir nur, wenn ich lediglich die DCU habe.
Gruß
Hansa
  Mit Zitat antworten Zitat
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#8

Re: CPU-Fenster

  Alt 16. Apr 2004, 16:31
Also ich hab den Quellcode jetzt zu meinem Programm hinzugefügt, läuft jetzt mit Delphi ohne das CPU-Fenster!

Danke!
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#9

Re: CPU-Fenster

  Alt 16. Apr 2004, 17:23
M$ hat ein paar Dlls versehentlich mit Debug-Informationen ausgeliefert in denen noch Breakpoints drinnen waren und Delphi als pflichtbewusster Debugger hält bei diesen natürlich auch an..!

Aktuelle Service Packs sollten das Problem aber beheben..! (hat bei mir zumindest funktioniert)
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.081 Beiträge
 
Delphi 12 Athens
 
#10

Re: CPU-Fenster

  Alt 1. Aug 2006, 11:15
Das INT 3 ist halt ein netter DebugInterupt, welcher halt halt nahezu jeden Debuger dort anhalten läßt.

ich nutze dieses Verhalten ja auch öfters mal aus
ASM INT3; End; Ist halt ein praktischer BreakPoint, der auch nicht verloren geht, wenn man Delphi, oder das Projekt schließt (die normalen BreakPoint verschwinden dann ja).

Und da man ja nichts an der ntdll.dll ändern kann (die ist ja von MS), ist es nur über soeinen Patch, wie von shmia möglich dieses wegzubekommen.

Oder du versuchst mal ein paar WindowsUpdates aufzuspielen, welche diesen "Fehler" entfernen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 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