Debug-Logging fuer VF-Linienzug Modus 1 und Modus 3
Zentrale Debug-Schalter-Sammlung (*dbg-schalter*, Default AUS) in ssg_dbg.lsp: dbg-schalter-on/-off/-p/-open/-liste. dbg*-Aufrufe bleiben dauerhaft im Code, ohne im Normalbetrieb .dbg-Dateien zu erzeugen. Modus 1 (vf-linienzug-modus): Session-Logging ueber Schalter "vfl-modus1" nach DXFM_LOG/vfl_modus1.dbg. Da alle interaktiven Eingaben bereits ueber die gemeinsamen vfl-in-point/-string/-real/ -int/-value/-selection-Wrapper laufen, reicht eine einzige Instrumentierung in vfl-journal-record/-mark/-steplabel, um jede Frage/Antwort automatisch mitzuloggen. Modus 3 (vf-linienzug-modus3): auf dieselben vfl-in-*-Wrapper umgestellt (vorher rohe getstring/getreal/getint/ssget) - profitiert dadurch vom selben automatischen Logging (Schalter "vfl-modus3", DXFM_LOG/vfl_modus3.dbg). Kein Journal-Replay/XDATA wie bei Modus 1/2, nur das Logging wurde uebernommen. Fix nebenbei: Dialog-Kopfzeile "Hoehe (Z) des Endpunkts [%1]" zeigte den Platzhalter woertlich statt des Vorschlagswerts (ssg-text statt ssg-textf). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,58 @@
|
||||
(setq *dbg-active* T) ; Debug-Ausgabe aktiv (Standard: ein)
|
||||
(setq *dbg-buffer* nil) ; Zeilenpuffer (Liste von Strings)
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; ZENTRALE DEBUG-SCHALTER-SAMMLUNG
|
||||
;;
|
||||
;; Jedes Feature/jede Routine hat ihren eigenen Schalter (Symbol -> 0/1).
|
||||
;; DEFAULT: alle AUS (0). Dadurch bleiben (dbg-schalter-openp "name" ...)-
|
||||
;; Aufrufe im Code stehen, ohne dass beim normalen Arbeiten .dbg-Dateien
|
||||
;; entstehen. Erst wenn der passende Schalter auf 1 gesetzt wird, wird die
|
||||
;; Datei angelegt und beschrieben.
|
||||
;;
|
||||
;; (dbg-schalter-on "vfl-modus3") ; Schalter einschalten (1)
|
||||
;; (dbg-schalter-off "vfl-modus3") ; Schalter ausschalten (0)
|
||||
;; (dbg-schalter-p "vfl-modus3") ; T wenn eingeschaltet, sonst nil
|
||||
;; (dbg-schalter-open "vfl-modus3" "vfl_modus3.dbg" "DXFM_LOG")
|
||||
;; ; oeffnet die Datei NUR wenn Schalter=1;
|
||||
;; ; gibt T zurueck wenn geoeffnet, sonst nil
|
||||
;; (dbg-schalter-liste) ; alle bekannten Schalter + Zustand zeigen
|
||||
;; ------------------------------------------------------------
|
||||
(if (not (boundp '*dbg-schalter*)) (setq *dbg-schalter* nil))
|
||||
|
||||
;; Bekannte Schalter mit Default 0 vorregistrieren (rein informativ fuer
|
||||
;; dbg-schalter-liste; unbekannte Namen gelten ebenfalls als 0/aus).
|
||||
(foreach nm '("vfl-modus1" "vfl-modus3")
|
||||
(if (not (assoc nm *dbg-schalter*))
|
||||
(setq *dbg-schalter* (cons (cons nm 0) *dbg-schalter*))))
|
||||
|
||||
(defun dbg-schalter-set (name wert)
|
||||
(setq *dbg-schalter*
|
||||
(cons (cons name wert)
|
||||
(vl-remove-if '(lambda (p) (= (car p) name)) *dbg-schalter*)))
|
||||
wert)
|
||||
|
||||
(defun dbg-schalter-on (name) (dbg-schalter-set name 1) (princ))
|
||||
(defun dbg-schalter-off (name) (dbg-schalter-set name 0) (princ))
|
||||
|
||||
(defun dbg-schalter-p (name / p)
|
||||
(setq p (assoc name *dbg-schalter*))
|
||||
(and p (= (cdr p) 1)))
|
||||
|
||||
;; Oeffnet die Debug-Datei NUR, wenn der Schalter <name> eingeschaltet ist.
|
||||
;; Rueckgabe: T wenn eine Datei geoeffnet wurde, sonst nil.
|
||||
(defun dbg-schalter-open (name filename envvar)
|
||||
(if (dbg-schalter-p name)
|
||||
(progn (dbgon) (dbgopen filename envvar) T)
|
||||
nil))
|
||||
|
||||
(defun dbg-schalter-liste ( / )
|
||||
(prompt "\n[DBG] Bekannte Debug-Schalter:")
|
||||
(foreach p (reverse *dbg-schalter*)
|
||||
(prompt (strcat "\n " (car p) " = " (itoa (cdr p))
|
||||
(if (= (cdr p) 1) " (EIN)" " (aus)"))))
|
||||
(princ))
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; DBGON - Debug-Ausgabe aktivieren
|
||||
;; ------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user