Es gibt mehrere mögliche Gründe:
* entweder es sind keine Debuginfos vorhanden
* oder die Debuginfos werden nicht gefunden
* es könnte auch sein, dass beim Compilieren/Linken falsche/alte DCUs gefunden und verwendet wurden, wo dann keine oder falsche Infos verwendet werden, die nicht zu deiner Codedatei passen
* * falsch = zu dieser "Zeile" ist nichts in den Debuginfos zu finden
* wurden Debuginfos gefunden und im Debugger geladen, dann hast links die blauen Punkte
* und ist in der Zeile mit dem Haltepunkt auch etwas vorhanden, dann kann er auch aktiv werden
* mit falschen/alten/unpassenden Debuginfos, bzw. bei ungünstigen Zeichen im Quellcode, können die "Zeilen" der Debuginfos verschoben sein
Compiler:
Die Bedingung "DEBUG" hat keinen "direkten" Einfluss auf das Kompilat ... die ist nur für {$IFDEF}s im Code.
"Mit Debug-DCUs" bezieht sich auf die Debug-Versionen der
RTL/
VCL, also der units von Delphi und nicht dem von dir Kompilierten.
"Debug-Informationen" ist einer der wichtigen Optionen, ebenso wie die "Symbol-Referenzen", welches bestimmt, ob sowas erstmal in die DCUs der Units kommt.
Linker:
Dieses "Debug-Informationen" bestimmt dann, ob vorhandene Debuginfos der DCU auch in der EXE landen.
"separate" und "externe Debuginfos" sind hier nicht wichtig. Delphi verwendet die "Internen", welche in die EXE gelinkt/eingefügt wurden.
Externe Debuginfos, sowie die MAP-Datei, werden vom Remote-Debugger und "fremden" Debuggern (z.B. WinDbg oder OllyDbg), sowie von Fehlerbehandlungs-Tools ala Eurekalog und Madexcept verwendet.
Die fett markierte Zeile ist in deinem Bild auch markiert und du hast doch bestimmt gemerkt, dass sie abgeschaltet ist?