Профессиональная конференция для Go-разработчиков

Расширение возможностей отладчика GDB при помощи Python

Хардкор

Хардкор

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Доклад — это рассказ о самом низком уровне отладки, когда клиент прислал core dump, и нужно разобраться, что случилось с кодом на C. А если код сложный, то и разбираться приходится с помощью расширений для GDB: чтобы показывать контейнеры, файберы и другие нестандартные штуки.

Целевая аудитория

Те, кто использует отладчик GDB для разбора проблем приложений.

Тезисы

Довольно часто при разборе проблем с проектами в контурах заказчика мы сталкиваемся с необходимостью использовать отладчик. Одним из типичных сценариев является, например, падение, при котором генерится coredump, и в дальнейшем мы используем его, чтобы разобраться с причиной падения. При этом у нас нет возможности использовать код самого Tarantool, а некоторые типовые для Тарантула действия просто неудобно делать, если использовать только базовый функционал отладчика.

К счастью, в отладчике предусмотрен механизм, с помощью которого можно расширить его возможности и упростить отладку. К тому же, зачастую по соображениям безопасности мы не имеем прямого доступа, собственно, к «корке» и вынуждены работать с ней удаленно, что также требует максимального упрощения взаимодействия с отладчиком для минимизации ошибок.

В частности, нам нужен удобный способ, для:
* работы с файберами: список, стек вызовов произвольного (не текущего) файбера;
* работы с различными списками: итерирование, просмотр/поиск элементов;
* просмотра msgpack с тарантульными расширениями;
* просмотра тапла и его формата;
* различных манипуляций с виртуальной машиной LuaJIT.

Разработчик в Tarantool.

VK, Tarantool

Tarantool — middleware для эффективного создания высоконагруженных сервисов. Сочетает в себе сервер приложений, гибридное хранилище данных, а также инструменты и средства масштабирования. Производительность систем на Tarantool может достигать 1 млн транзакций в секунду.

Видео