# WSL Üzerinde Odoo Debug Eğitimi
## 1. WSL Ortam Hazırlığı
### WSL Kurulum ve Yapılandırma
- WSL2'nin kurulumu
- Ubuntu dağıtımının kurulumu
- Python geliştirme ortamının hazırlanması
- VSCode WSL uzantısının kurulumu
### Gerekli Paketlerin Kurulumu
```bash
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-dev
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install libxml2-dev libxslt1-dev
sudo apt-get install libldap2-dev libsasl2-dev
sudo apt-get install python3-venv
```
## 2. VSCode Debug Yapılandırması
### VSCode Eklentileri
- Python extension
- Remote - WSL
- Remote Development
- Debugger for Python
### launch.json Yapılandırması
# Python Debugger Configuration for Odoo 16
This is a sample `launch.json` configuration for debugging an Odoo 16 instance using `debugpy` in Visual Studio Code.
```json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Current File",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/odoo16/odoo-bin",
"args": [
"-c",
"${workspaceFolder}/odoo16.conf",
"--dev=all"
],
"console": "integratedTerminal",
"justMyCode": false
}
]
}
## 3. Debug Teknikleri
### Breakpoint Kullanımı
- Breakpoint ekleme yöntemleri
- Koşullu breakpoint kullanımı
- Temporary breakpoint kullanımı
- Watch expressions ekleme
### Debug Görünümleri
- Call Stack inceleme
- Variables paneli kullanımı
- Watch paneli kullanımı
- Debug Console kullanımı
### Python Debugger (pdb) Kullanımı
```python
import pdb; pdb.set_trace() # Kod içinde breakpoint ekleme
# Temel pdb komutları
# n (next) - Bir sonraki satıra git
# s (step) - Fonksiyon içine gir
# c (continue) - Breakpoint'e kadar devam et
# p variable - Değişken değerini yazdır
# l (list) - Mevcut kod satırlarını göster
```
## 4. Odoo Özel Debug Teknikleri
### Developer Mode Aktivasyonu
- ?debug parametresi kullanımı
- Technical Features aktivasyonu
- Debug menüsü özellikleri
### SQL Debug
```python
# SQL sorgu loglarını aktifleştirme
--log-level=debug_sql
# PostgreSQL log inceleme
sudo tail -f /var/log/postgresql/postgresql-*.log
```
### Asset Debug
- Web asset debugging aktivasyonu
- JavaScript debugging
- CSS debugging
## 5. Log Yönetimi
### Log Seviye Yapılandırması
```python
# Log seviyeleri
--log-level=debug
--log-level=debug_rpc
--log-level=debug_sql
--log-level=info
```
### Log İnceleme
```bash
# Odoo log dosyasını izleme
tail -f /var/log/odoo/odoo-server.log
# Filtreli log inceleme
grep "ERROR" /var/log/odoo/odoo-server.log
```
## 6. İleri Seviye Debug Teknikleri
### Remote Debugging
- Remote debugger yapılandırması
- Remote host bağlantısı
- Remote debugging güvenlik önlemleri
### Performance Profiling
```python
# cProfile kullanımı
python -m cProfile -o profile.stats odoo-bin
# Profil analizi
python -m pstats profile.stats
```
### Memory Profiling
```python
# memory_profiler kullanımı
from memory_profiler import profile
@profile
def my_function():
# kodunuz
pass
```
## 7. Yaygın Debug Senaryoları
### Form View Debug
- View inheritance debug
- Field değer takibi
- Onchange tetikleyicileri debug
### ORM Debug
- Create/Write metodları debug
- Compute field debug
- Domain filtresi debug
### Workflow Debug
- State değişimleri takibi
- Action tetikleyicileri debug
- Automated action debug
## En İyi Uygulamalar ve İpuçları
### Debug Verimliliği
- Etkili breakpoint kullanımı
- Watch expressions optimizasyonu
- Debug performance iyileştirmeleri
### Güvenlik Önlemleri
- Production ortamında debug riskleri
- Debug mod güvenlik yapılandırması
- Hassas veri koruması
### Troubleshooting
- Yaygın debug hataları
- Çözüm yöntemleri
- Debug araçları sorun giderme
WSL Üzerinde Odoo Debug Eğitimi