-
Notifications
You must be signed in to change notification settings - Fork 0
Guide Debugger
Der VelinScript Debugger ermöglicht es, VelinScript-Programme direkt in VS Code zu debuggen.
Der Debugger ist Teil der VelinScript VS Code Extension. Stelle sicher, dass die Extension installiert ist.
- Öffne eine
.velinDatei - Setze Breakpoints durch Klick auf den linken Rand
- Drücke F5 oder gehe zu "Run and Debug"
- Wähle "Debug VelinScript" aus der Konfiguration
velin-debugger start --port 4711Erstelle eine .vscode/launch.json Datei:
{
"version": "0.2.0",
"configurations": [
{
"type": "velin",
"request": "launch",
"name": "Debug VelinScript",
"program": "${workspaceFolder}/main.velin",
"stopOnEntry": false,
"args": []
},
{
"type": "velin",
"request": "attach",
"name": "Attach to VelinScript",
"port": 4711,
"host": "localhost"
}
]
}- Klicke auf den linken Rand neben einer Zeilennummer
- Oder verwende
F9auf der aktuellen Zeile - Breakpoints werden als rote Punkte angezeigt
Rechtsklick auf einen Breakpoint → "Edit Breakpoint" → Bedingung eingeben:
x > 10
Rechtsklick auf einen Breakpoint → "Add Logpoint" → Log-Nachricht eingeben:
Variable x = {x}
Führt die aktuelle Zeile aus und pausiert bei der nächsten Zeile.
Tritt in Funktionsaufrufe ein.
Verlässt die aktuelle Funktion und pausiert bei der aufrufenden Funktion.
Setzt die Ausführung fort bis zum nächsten Breakpoint.
Startet das Debugging neu.
Beendet das Debugging.
Im "Variables" Panel siehst du alle Variablen im aktuellen Scope:
- Lokale Variablen
- Funktionsparameter
- Globale Variablen
Füge Ausdrücke zum "Watch" Panel hinzu, um sie während des Debuggings zu überwachen:
x + y
user.name
list.length()
Bewege die Maus über eine Variable, um ihren aktuellen Wert zu sehen.
Das "Call Stack" Panel zeigt die Aufrufkette:
main() - main.velin:10
createUser() - main.velin:25
validateEmail() - validation.velin:5
Die Debug Console ermöglicht es, Ausdrücke während des Debuggings zu evaluieren:
> x
42
> x + 10
52
> getUserName()
"John"
fn calculateTotal(items: List<Item>): number {
let mut total = 0.0; // Breakpoint hier
for (item in items) {
total = total + item.price; // Breakpoint hier
}
return total; // Breakpoint hier
}
fn main(): void {
let items = List<Item>([
Item { name: "Apple", price: 1.5 },
Item { name: "Banana", price: 2.0 }
]);
let total = calculateTotal(items); // Breakpoint hier
// Inspect: total should be 3.5
}
- Verwende Conditional Breakpoints für wiederholte Schleifen
-
Nutze Logpoints statt
printlnfür temporäres Logging - Watch Expressions für komplexe Berechnungen
- Call Stack um den Ausführungsfluss zu verstehen
- Prüfe, ob
velin-debuggerim PATH ist - Prüfe die Port-Konfiguration (Standard: 4711)
- Prüfe die VS Code Extension Logs
- Stelle sicher, dass der Code kompiliert wurde
- Prüfe, ob Debug-Informationen generiert wurden
- Stelle sicher, dass der Code tatsächlich ausgeführt wird
- Prüfe, ob du an einem Breakpoint pausiert bist
- Stelle sicher, dass die Variablen im aktuellen Scope sind
- Prüfe, ob die Variablen initialisiert wurden
- Compiler Architecture
- Pass-Verlauf
- Type Inference
- Code Ordering
- IR Representation
- Borrow Checker
- Code Generation
- Multi-Target Compilation
- Module Resolution
- Framework Integration
- Parallelization
- AI Compiler Passes
- Prompt Optimizer
- System Generation
- Basics
- APIs
- Security
- Database
- Validation
- Authentication
- ML/LLM
- Intelligence Features
- Type Inference
- ML Training
- Pattern Matching
- Closures
- Collections
- HTTP Client
- String Interpolation
- Debugger
- Vektor-Datenbanken
- CLI Reference
- API Keys Setup
- Advanced
- Backend
- Security Best Practices
- AI/ML
- Auto Imports
- Plugin Development