Im Rahmen der Vista-Zertifizierung, will Microsoft sicherstellen, dass eine Anwendung beendet, ohne auf eine Sperre hält an (kritischer Abschnitt):Delphi 2009: Wie verhindere ich, dass die Netzwerkanwendung kritische Bereiche durchlässt?
TEST CASE 31. Verify application does not break into a debugger with the specified AppVerifier checks (Req:3.2)
Wie sich herausstellt, Netzwerk-Anwendungen 2009 mit Delphi gebaut wird in die Pause Debugger, die nicht hilfreich Meldung anzeigt, wie folgt:
(1214.1f10): Break instruction exception - code 80000003 (first chance)
eax=00000001 ebx=07b64ff8 ecx=a6450000 edx=0007e578 esi=0017f7e0 edi=80000003
eip=77280004 esp=0017f780 ebp=0017f7ac iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\SysWOW64\ntdll.dll -
ntdll!DbgBreakPoint:
77280004 cc int 3
Nach dem Drücken mehrmals Go-Taste, kommen Sie über den tatsächlichen Fehler:
=======================================
VERIFIER STOP 00000212: pid 0x18A4: Freeing virtual memory containing an active critical section.
076CC5DC : Critical section address.
01D0191C : Critical section initialization stack trace.
075D0000 : Memory block address.
00140000 : Memory block size.
=======================================
This verifier stop is continuable.
After debugging it use `go' to continue.
=======================================
Vorausgesetzt, dass mein Code nichtleak, wie verhindere ich, dass Delphi dies tut.