#prog
Одной из самых впечатляющих разновидностей программ являются отладчики с записью и перемоткой потока состояния программы, такие, как rr. Записываешь выполнение программы один раз, сохраняешь на диск — и перезапускаешь сколько угодно раз. Благодаря тому, что путь исполнения записывается целиком, становится возможных исполнение назад во времени. Конкретно rr выделяется среди подобных отладчиков очень низким оверхедом на запись.
Можно ли сделать лучше? Определённо, да! Идея всезнающего отладчика (Omniscient Debugging) состоит в том, чтобы сохранить запись состояния программы в структурированном виде — в некоторой базе данных — чтобы иметь возможность делать по этому состоянию запросы, т. е. иметь картину исполнения программы целиком, а не только в конкретный момент исполнения. Впервые этот подход был применён в ODB. К сожалению, этот отладчик работает только на JVM и имеет заметный оверхед на запись состояния (масштаба двух порядков).
Новый отладчик Pernosco от разработчиков rr использует rr для записи состояния программы с низким оверхедом и сохраняет в структурированном виде, позволяя делать... Очень много. Серьёзно, посмотрите сами, там колоссальное количество крутых фич. Пожалуй, одна из самых впечатляющих — это возможность инспектировать стеки вызовов программ с оптимизациями (такими, как встраивание функций и элиминация хвостовой рекурсии) и код, над которым поработал JIT-компилятор — то, перед чем пасуют традиционные компиляторы.
К сожалению, отладчик не бесплатный и не с открытым исходным кодом, но авторы уверяют, что уже предоставляют его на коммерческой основе. Учитывая весь набор фич — пожалуй, справедливо.
Одной из самых впечатляющих разновидностей программ являются отладчики с записью и перемоткой потока состояния программы, такие, как rr. Записываешь выполнение программы один раз, сохраняешь на диск — и перезапускаешь сколько угодно раз. Благодаря тому, что путь исполнения записывается целиком, становится возможных исполнение назад во времени. Конкретно rr выделяется среди подобных отладчиков очень низким оверхедом на запись.
Можно ли сделать лучше? Определённо, да! Идея всезнающего отладчика (Omniscient Debugging) состоит в том, чтобы сохранить запись состояния программы в структурированном виде — в некоторой базе данных — чтобы иметь возможность делать по этому состоянию запросы, т. е. иметь картину исполнения программы целиком, а не только в конкретный момент исполнения. Впервые этот подход был применён в ODB. К сожалению, этот отладчик работает только на JVM и имеет заметный оверхед на запись состояния (масштаба двух порядков).
Новый отладчик Pernosco от разработчиков rr использует rr для записи состояния программы с низким оверхедом и сохраняет в структурированном виде, позволяя делать... Очень много. Серьёзно, посмотрите сами, там колоссальное количество крутых фич. Пожалуй, одна из самых впечатляющих — это возможность инспектировать стеки вызовов программ с оптимизациями (такими, как встраивание функций и элиминация хвостовой рекурсии) и код, над которым поработал JIT-компилятор — то, перед чем пасуют традиционные компиляторы.
К сожалению, отладчик не бесплатный и не с открытым исходным кодом, но авторы уверяют, что уже предоставляют его на коммерческой основе. Учитывая весь набор фич — пожалуй, справедливо.
🤯2
#prog #rust
Начался опрос о состоянии Rust в 2020 году: https://blog.rust-lang.org/2020/09/10/survey-launch.html. Рекомендую поучаствовать, если вы как-то связаны с Rust. Если что, опрос доступен на нескольких языках, в том числе на русском.
Начался опрос о состоянии Rust в 2020 году: https://blog.rust-lang.org/2020/09/10/survey-launch.html. Рекомендую поучаствовать, если вы как-то связаны с Rust. Если что, опрос доступен на нескольких языках, в том числе на русском.
blog.rust-lang.org
Launching the 2020 State of Rust Survey | Rust Blog
Empowering everyone to build reliable and efficient software.
Маjко
Photo
Наверное, это символично, что тысячным постом на канале стал код с синтаксисом, являющимся смесью C++ и Rust.
Блог*
Это самое Я заболел, пойду в больницу. В ближайшее время постов не будет. #suckassstory
UPD: мне стало сильно лучше после укола обезболивающего, из больницы меня в итоге отпустили. Но постов всё равно, скорее всего, пока что не будет. Будет видно по самочувствию.