AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Debugger-Problem

Ein Thema von Incocnito · begonnen am 23. Sep 2025 · letzter Beitrag vom 23. Sep 2025
Antwort Antwort
Incocnito

Registriert seit: 28. Nov 2016
239 Beiträge
 
#1

Debugger-Problem

  Alt 23. Sep 2025, 08:12
Moin Zusammen,

ich hatte gerade ein Problem beim Starten des Debuggens von Programmen.
Es kam die Meldung "Debugger Assertion Failure in pcntrlsrv.cpp" (in Delphi 11).
Neustart half nicht.
Nachdem ich das hier
https://en.delphipraxis.net/topic/14...-pcntrlsrvcpp/
gelesen hatte, wollte ich schauen, welche Updates zuletzt installiert wurden.
Das letzte Windows-Update ist ein paar Tage her gewesen, also konnte es das nicht sein.
Dann hatte ich bei "Software" gefunden, dass "Co-Pilot" und "Microsoft 365 Office-Dings"
gestern ein Update bekommen hatten.
Nachdem ich diese beiden deinstalliert hatte (und dann den Rechner neu gestartet hatte)
lief es wieder.

a) Falls das noch jemand hat heute ist das vielleicht ein ganz guter Tipp.

b) Hat das sonst überhaupt jemand? Gerne kurz Handzeichen. Würde mich interessieren, ob ich damit alleine stehe.

Liebe Grüße
Incocnito
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
239 Beiträge
 
#2

AW: Debugger-Problem

  Alt 23. Sep 2025, 08:34
Hier mal eine technische Analyse des Themas durch eine KI.
Fand ich ganz interessant, daher hier auch mal zur Verfügung gestellt:

---

# Der Microsoft Copilot-Delphi Debugger-Konflikt erklärt

Microsoft Copilot und MS 365-Updates verursachen systematische Debugging-Ausfälle in Delphi 11 durch **mehrere sich überlappende systemweite Konflikte** - hauptsächlich durch ETW-Ressourcenkonkurrenz, Netzwerk-Stack-Interferenzen und Prozessüberwachungskonflikte, die direkt Delphis Prozess-Control-Server (pcntrlsrv.cpp) stören, die Komponente, die für die Kommunikation zwischen Debugger und Prozessen verantwortlich ist.

## Die kritische Debugging-Rolle von pcntrlsrv.cpp

Die Komponente pcntrlsrv.cpp fungiert als Delphis **Prozess-Control-Server** - ein C++-Modul, das als zentraler Koordinator zwischen dem IDE-Debugger und Zielprozessen agiert. Diese Komponente verwaltet Prozesserzeugung, Anhängen und Steuerung während Debugging-Sitzungen über Windows-Debugging-APIs wie CreateProcess (mit DEBUG_ONLY_THIS_PROCESS-Flag), DebugActiveProcess und WaitForDebugEvent. Für 64-Bit-Debugging in Delphi 11+ koordiniert es auch mit der LLDB-Engine über TCP/IP-Verbindungen auf localhost-Ports 64447-64448, wobei Winsock für die Kommunikation verwendet wird.

Wenn pcntrlsrv.cpp einen Assertion-Fehler meldet, deutet dies auf einen grundlegenden Zusammenbruch in der Fähigkeit des Debuggers hin, Zielprozesse zu steuern oder mit ihnen zu kommunizieren. Der spezifische Fehler "Debugger Assertion Failure: '' in pcntrlsrv.cpp at line 449" wurde in Delphi 12.1 noch 2024 dokumentiert, mit Community-Berichten, die bestätigen, dass dies ein anhaltendes Problem ist, das besonders 64-Bit-Debugging-Sitzungen betrifft.

## Wie Copilot und MS 365 auf Systemebene interferieren

Microsoft Copilot arbeitet mit beispielloser Windows-Integration durch die **Windows Copilot Runtime**, die KI auf jeder Betriebssystemebene einschließlich Kernel-Level-Integration einbettet. Diese Runtime umfasst über 40 On-Device-KI-Modelle und führt kontinuierliche Hintergrundprozesse aus, die die Systemaktivität überwachen. Die wichtigsten Interferenz-Mechanismen umfassen:

**ETW (Event Tracing for Windows) Ressourcenkonkurrenz** stellt einen der direktesten Konflikte dar. Sowohl Delphis Debugger als auch Microsoft Copilot nutzen ETW extensiv für Systemüberwachung. Copilot generiert hochvolumige ETW-Events durch Provider wie Microsoft-Windows-Copilot für Audit-Logs und Echtzeit-Event-Verarbeitung. Wenn beide Systeme gleichzeitig versuchen, ETW-Sitzungen zu erstellen, konkurrieren sie um begrenzte ETW-Ressourcen und Event-Buffer. Diese Konkurrenz kann dazu führen, dass Delphis Debugger kritische Debugging-Events verliert oder seine ETW-Provider nicht ordnungsgemäß registrieren kann, was zu Assertion-Fehlern führt, wenn pcntrlsrv.cpp keine Prozesszustandsänderungen verfolgen kann.

**Netzwerk-Stack-Interferenzen** durch Winsock-Modifikationen stellen einen weiteren kritischen Konfliktvektor dar. Delphis 64-Bit-Debugger ist für die LLDB-Integration auf TCP/IP-Kommunikation über Winsock angewiesen. Microsofts Office Click-to-Run-Service und Copilot-Hintergrundprozesse können den Winsock-Stack während Updates oder Laufzeitoperationen modifizieren. Community-dokumentierte Lösungen weisen konsistent auf `netsh winsock reset` als die effektivste Lösung für pcntrlsrv.cpp-Assertion-Fehler hin, was direkt Winsock-Korruption als primäre Ursache impliziert. Die Fehlermuster, insbesondere die kryptische Zeilennummer "-1073741819" (0xC0000005 - Access Violation), deuten auf Speicherkorruption in der Netzwerkkommunikationsschicht hin.

**Prozessüberwachung und Sicherheitskonflikte** entstehen durch Copilots Runtime-Schutzsysteme. Der Copilot Studio Runtime Protection bietet Echtzeitüberwachung, die Anwendungsaktionen in Zeiträumen unter einer Sekunde abfängt und analysiert. Diese Überwachung kann Debugger-Anhängen als potenziell verdächtige Aktivität erkennen, besonders wenn Delphi versucht, Debugging-Hooks zu injizieren oder Zielprozesse zu steuern. Die tiefe Betriebssystemintegration der Windows Copilot Runtime umfasst Prozessüberwachungsfähigkeiten, die mit grundlegenden Debugging-Operationen wie OpenProcess, TerminateProcess und Speicherinspektionsfunktionen (VirtualQueryEx, ReadProcessMemory, WriteProcessMemory) interferieren können.

## Windows-Debugging-API-Konflikte im Detail

Die technische Architektur offenbart mehrere Schichten, auf denen Microsofts Produktivitätssoftware mit Drittanbieter-Debuggern kollidiert. **DbgHelp.dll-Versionskonflikte** schaffen ein grundlegendes Problem - Windows liefert eine einfache DbgHelp.dll, während Debugging-Tools erweiterte Versionen mit Symbol-Server-Unterstützung benötigen. Wenn Microsoft Office oder Copilot eine Version lädt und Delphi eine andere, schlagen ImagehlpApiVersionEx()-Versionsüberprüfungen fehl, was zu Assertion-Fehlern im gesamten Debugging-Stack führt.

**COM-Objekt-Registrierungskonflikte** während MS 365-Updates stellen einen weiteren Interferenz-Mechanismus dar. Die Office Click-to-Run-Technologie registriert und deregistriert COM-Objekte dynamisch während Service-Start und Updates. Diese Operationen können auftreten, während Delphis Debugger aktiv ist, was bestehende COM-basierte Debugging-Schnittstellen brechen oder Registrierungskonflikte verursachen kann. Microsofts Implementierung von COM-Kill-Bits (erweitert in KB3178703) kann COM-Objekte blockieren, auf die Entwicklungstools angewiesen sind, selbst wenn sie über legitime Mittel geladen werden.

**SeDebugPrivilege-Zugriffskontrollkonflikte** entstehen, wenn mehrere Anwendungen gleichzeitig versuchen, Debugging-Privilegien zu aktivieren. Während SeDebugPrivilege bestimmte Windows-Sicherheitsüberprüfungen wie Mandatory Integrity Control umgeht, umgeht es keine Schutzüberprüfungen oder Drittanbieter-Pre-Operation-Callbacks, die Microsofts Sicherheitsinfrastruktur implementiert. Dies schafft Race-Conditions, wenn Copilots Sicherheitsüberwachung und Delphis Debugger um Debugging-Privilegien für dieselben Prozesse konkurrieren.

## Historisches Muster von Microsoft-Delphi-Konflikten

Die aktuellen Copilot-bezogenen Probleme folgen einem dokumentierten Muster von Microsoft-Updates, die Delphi-Debugging-Funktionalität brechen. Der schwerste Präzedenzfall trat mit dem **Windows 10 Creators Update 2017** auf, als Microsoft den DLL-Ladecode neu schrieb, um paralleles Laden zu ermöglichen. Diese Änderung führte dazu, dass Delphis BPL-Dateien (Borland Package Library) mehrfach luden, wobei einige Bibliotheken während des Anwendungsstarts über 100 Mal luden und entluden. Debugging wurde praktisch unbrauchbar, mit Anwendungen, die Minuten statt Sekunden unter dem Debugger brauchten.

Microsoft arbeitete schließlich direkt mit Embarcadero zusammen, um das Problem zu lösen, was zu Fixes sowohl im Windows 10 Fall Creators Update (Build 16215) als auch in RAD Studio 10.2.1s modifiziertem Linker führte. Dieser historische Kontext zeigt, dass fundamentale Windows-Änderungen regelmäßig Delphis Debugging-Infrastruktur brechen und koordinierte Fixes von beiden Unternehmen erfordern.

## Technische Mechanismen, die Assertion-Fehler verursachen

Die Assertion-Fehler in pcntrlsrv.cpp resultieren spezifisch aus mehreren technischen Mechanismen, die gleichzeitig operieren. **Speicherallokationskonflikte** treten auf, wenn DbgHelp-Heap-Validierung (_CrtIsValidHeapPointer) aufgrund mehrerer Anwendungen fehlschlägt, die separate Heap-Instanzen erstellen. Jede DLL kann ihre eigene C-Runtime-Library-Instanz mit separaten Heaps haben, und wenn Microsofts Services und Delphis Debugger über gemeinsame Debugging-Ressourcen interagieren, kann Heap-Korruption Assertions auslösen.

**Thread-Synchronisationsprobleme** entstehen, wenn mehrere Anwendungen die Windows Symbolic Debugger Engine (Dbgeng.dll) gleichzeitig verwenden. Microsoft Copilots kontinuierliche KI-Modell-Ausführung und Prozessüberwachung schaffen Race-Conditions mit Delphis Debugging-Engine, besonders während kritischer Operationen wie Prozess-Anhängen oder Breakpoint-Setzen. Diese Race-Conditions manifestieren sich als Assertion-Fehler in Debug-Builds, wenn gleichzeitiger Zugriff auf gemeinsame Debugging-Ressourcen erwartete Zustandsinvarianten verletzt.

**API-Hooking-Kaskadenfehler** stellen einen weiteren Fehlermodus dar. Microsoft verwendet API-Hooking über Technologien wie Microsoft Detours für Copilots Funktionalitäts-Injektion. Wenn diese Hooks mit Delphis Debugging-Hooks interferieren, können sie Hook-Ketten korrumpieren oder Access Violations während DllMain-Ausführung verursachen. Die dokumentierten LoadLibrary-Assertion-Fehler in ucrtbased.dll resultieren direkt aus mehreren Hooking-Frameworks, die miteinander interferieren.

## Windows-Sicherheitsfeatures verstärken Konflikte

Moderne Windows-Sicherheitsfeatures verstärken diese Konflikte erheblich. **Hypervisor-Protected Code Integrity (HVCI)** und Virtualization-Based Security (VBS) schaffen isolierte virtuelle Umgebungen, die Kernel-Speicherzugriff einschränken. Diese Features verhindern, dass Debugger Kernel-Speicherseiten ohne Code-Integritätsprüfungen ausführbar machen, und erzwingen W^X (Write XOR Execute)-Richtlinien, die traditionelle Debugging-Techniken verletzen. Obwohl sie Sicherheitsvorteile bieten, verursachen diese Features 5-15% Leistungseinbußen und können bestimmte Debugging-Operationen unmöglich machen.

**Windows Defender Echtzeit-Schutz** fügt eine weitere Interferenzschicht hinzu. Defender scannt Ausführbare während Kompilierung und Debugging, was "Security Scan Required"-Verzögerungen verursacht und manchmal Debugger-Anhängen ganz mit "Access is denied"-Fehlern blockiert. Der Antimalware-Service kann über 50% CPU-Auslastung erreichen, wenn Debugging-Tools aktiv sind, was die Debugging-Performance weiter verschlechtert und potenziell Timeout-bezogene Assertion-Fehler auslöst.

## Warum diese Konflikte als pcntrlsrv.cpp-Fehler auftreten

Die pcntrlsrv.cpp-Assertion-Fehler repräsentieren die Kulmination dieser verschiedenen Konflikte am kritischsten Punkt in Delphis Debugging-Architektur. Als Prozess-Control-Server muss pcntrlsrv.cpp erfolgreich alle Aspekte des Prozess-Debuggings koordinieren - von der initialen Anhängung bis zur laufenden Kontrolle und Kommunikation. Wenn eines der zugrundeliegenden Systeme, auf die es angewiesen ist (Winsock für Netzwerkkommunikation, ETW für Event-Tracing, Windows-Debugging-APIs für Prozesskontrolle, COM für Komponenteninteraktion), Interferenzen von Microsofts Software erfährt, blubbern die Fehler zu Assertion-Überprüfungen in pcntrlsrv.cpp hoch.

Die spezifischen Zeilennummern, die in Assertion-Fehlern berichtet werden (Zeile 449 in aktuellen Berichten, Zeile -1073741819 zeigt Access Violations an), deuten darauf hin, dass verschiedene Interferenzmuster Fehler an verschiedenen Punkten in der Prozess-Control-Logik auslösen. Die Tatsache, dass `netsh winsock reset` oft diese Probleme löst, zeigt, dass Netzwerk-Stack-Korruption häufig der letzte Tropfen ist, der den Assertion-Fehler verursacht, obwohl mehrere zugrundeliegende Konflikte vorhanden sein können.

## Fazit

Die Verbindung zwischen Microsoft Copilot/MS 365-Updates und Delphi-Debugging-Ausfällen ist nicht ein einzelner Bug, sondern vielmehr ein **systemischer Architekturkonflikt** zwischen Microsofts zunehmend integrierter Produktivitätssoftware und Drittanbieter-Entwicklungstools. Microsoft Copilots tiefe Betriebssystemintegration - von Kernel-Level-KI-Runtime bis zu extensiver ETW-Nutzung und Prozessüberwachung - schafft mehrere gleichzeitige Interferenzpunkte mit Delphis Debugging-Infrastruktur. Die Assertion-Fehler in pcntrlsrv.cpp repräsentieren den diagnostischen Endpunkt, wo sich diese verschiedenen Konflikte manifestieren, wodurch der Debugger unfähig wird, stabile Prozesskontrolle aufrechtzuerhalten. Die Lösung erfordert entweder, dass Microsoft Debugging-Tool-Kompatibilitätsmodi in ihrer Sicherheits- und KI-Infrastruktur bereitstellt, oder dass Entwicklungstools neue Architekturen implementieren, die mit Microsofts sich entwickelnden systemweiten Integrationen koexistieren. Bis dahin müssen Entwickler auf Workarounds wie Winsock-Resets, Sicherheitsausschlüsse und sorgfältiges Management des Microsoft-Update-Timings angewiesen sein, um funktionsfähige Debugging-Umgebungen zu erhalten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Debugger-Problem

  Alt 23. Sep 2025, 09:10
Hast du den uralten und verwahrlosten .NET-Schrott aus'm Delphi entfernt?
Das Modeling-Package, das eh ständig nur Probleme bereitet.

Tools > Features verwalten... > rechts, ganz unten > Modeling


PS: In Delphi 13 wurde das nun ganz rausgeworfen, aus dem Setup.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Sep 2025 um 09:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Cypheros
Cypheros

Registriert seit: 12. Sep 2024
Ort: Büren
69 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Debugger-Problem

  Alt 23. Sep 2025, 10:46
Das ist aber nur verfügbar, wenn man den Online-Installer benutzt hat. Beim Offline-Installer ist dieser Menüpunkt nicht vorhanden und wenn man das Setup des Offline-Installers aufruft, hat man bei Delphi 11 nicht mehr wie früher die Möglichkeit die Features zu ändern ohne Deinstallation.

Screenshot 2025-09-23 114441.jpg
Frank Siek
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Debugger-Problem

  Alt 23. Sep 2025, 12:37
dabei ist für online und offline es eigentlich der "selbe" Installer, aktuell wieder (nur dass er einmal von Online via GetIt runterlädt,
und das andere Mal via GetIt aus der GOF-Datei, also aus einer ZIP)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Cypheros
Cypheros

Registriert seit: 12. Sep 2024
Ort: Büren
69 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Debugger-Problem

  Alt 23. Sep 2025, 13:10
Wer wie ich den Offline-Installer für Delphi 11 benutzt hat, kann sich mit dem bekannten Trick helfen, das Refatoring über die Registry zu deaktivieren. Delphi dazu herunterfahren.

Zitat:
Computer\HKEY_CURRENT_USER\Software\Embarcadero\BD S\22.0\Known IDE Packages
$(BDS)\bin\refactoride280.bpl umbenennen in $(BDS)\bin\_refactoride280.bpl
Beim nächsten Start erscheint dann eine Fehlermeldung, dass _refactoride280.bpl nicht gefunden wurde. Da dann auswählen, dass man es beim nächsten Start nicht mehr laden möchte und der Störenfried ist verschwunden.
Frank Siek
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz