Fun
Интересное для меня применение LLM: писать фаззеры, чтобы увеличить покрытие кода.
https://github.com/google/oss-fuzz-gen
В целом даём функции public API, которые не покрыты, пытаемся для них написать фаззер с помощью LLM, исправляем ошибки компиляции через промпты, запускаем фаззеры и находим баги. 6 новых багов, много покрытия, не особо надо думать как писать фаззер, если не знакомы, красиво и полезно.
https://www.brendangregg.com/blog/2024-03-17/the-return-of-the-frame-pointers.html – the return of the frame pointers.
Давным давно мы в компиляторах по умолчанию выключили сохранение информации о стеке в регистре %rbp, потому что регистров в 32 битных системах стало не хватать, а бенчмарки показывали иногда много преимуществ. Из проблем – полностью мёртвый дебаг, gdb работает через раз, поцарапанные профили и вообще ноль уважения к более низкоуровневым языкам. В Google мы давно всё собираем с frame pointer, потому что оптимизации с хорошими профилями дают больше преимуществ, чем отдать один регистр, тем более на x64.
В 2023 году теперь обычные линуксовые дистрибуторы вроде Fedora и Arch будут собирать с frame pointers, чтобы можно было дебагать, что происходит.
Почитайте статью, написана легко и красиво.