-
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