Baslangic

Platform tanitimi

Bu platform, eBPF öğrenmenize yardımcı olmak için yapılandırılmış bir ortam ve alıştırmalar sunar.

Editör, siz yazarken kodunuzu lokal olarak derler, ancak butonuna tıklayarak bunu devre dışı bırakabilirsiniz. Derleme hataları satır içinde vurgulanır.

Editöre bir şeyler yazmayı deneyin ve nasıl tepki verdiğini görün, ardından kodunuzu sunucuda çalıştırmak için ‘Run’ butonuna tıklayın.

‘vim mode’ tercih ediyorsanız, butonu bunu açıp kapatır.

Kısayol tuşları

  • Ctrl+Enter kodu çalıştırır.
  • Ctrl+Click type definition’lar üzerinde (my_struct, trace_event_raw_sched_process_exec) bir type definition popup’ı gösterir

Debug araçları

Programlarınızdan veri görüntülemek için birden fazla DEBUG_ macro’su mevcuttur. Her macro, ilk argüman olarak bir label (string constant) alır.

  • DEBUG_NUM(label, num) - u32 veya ssize_t gibi herhangi bir sayı alabilir
  • DEBUG_STR(label, buf) - char[64] gibi sabit boyutlu bir buf gerektirir
  • DEBUG_STR_LEN(label, ptr, len) - herhangi bir pointer alabilir, len byte debug eder
  • DEBUG_STRUCT(label, struct) - herhangi bir struct’ı değer olarak alabilir

Cevap gönderme

Alıştırmaları çözmek için cevaplarınızı doğrudan kodunuzdan, SUBMIT_NUM(answer), SUBMIT_STR(answer) veya SUBMIT_STR_LEN(answer, len) kullanarak göndermeniz gerekir.

eBPF programınız birden fazla event’te tetiklenir, bu yüzden SUBMIT_X çağrılarınızı korumanız gerekir, çünkü birden fazla gönderim tüm cevapları geçersiz kılar.

SUBMIT_STR kullanırken sondaki null byte’lar kırpılır, ancak sondaki gereksiz veriler kırpılmaz. Null termination garantisi olmadığında SUBMIT_STR_LEN varyantını kullanın.

Bu alıştırmayı, SUBMIT_STR("the answer"); satırının yorum işaretlerini kaldırarak çözün.

Run your code to see execution events here