З
Записки MLEшника
@yet_another_mle777 подп.
2.5Kпросмотров
5 августа 2025 г.
Score: 2.7K
Спустя долгое время отсутствия приношу пост 👀 Наверняка вы когда-нибудь сталкивались с тем, что питонячий код/скрипт зависал во время выполнения. В такие моменты очень хочется знать, собственно, в каком месте это происходит... Так вот это довольно легко сделать (по крайней мере на Linux) с помощью дебагера gdb Делается так: 0. Сохраняем локально файл libpython.py. Это нужно, чтобы в gdb стек и код вокруг отображался "по-питонячему" (иначе это будет малопонятный C++). - Для этого открываем CPython на гитхабе - Переключаемся с main ветки на tag с версией питона, которым запущен зависший код - Скачиваем файл libpython.py (например wget https://raw.githubusercontent.com/python/cpython/refs/tags/v3.13.5/Tools/gdb/libpython.py) 1. Подключаемся к зависшему питонячему процессу sudo gdb -p 68653 2. Подключаем файл source libpython.py 3. Выбираем нужный поток, если их несколько info threads - показать все thread 1 - выбрать первый 4. Смотрим стек py-bt 5. Смотрим код вокруг py-list 6. Смотрим переменные py-locals 7. Двигаемся по стеку выше/ниже py-up py-down Все команды можно посмотреть как раз в файле libpython.py, который мы скачивали на шаге 0 Один-два раз это упражнение делаешь - код болеть не будет! 💪
2.5K
просмотров
1244
символов
Нет
эмодзи
Нет
медиа

Другие посты @yet_another_mle

Все посты канала →
Спустя долгое время отсутствия приношу пост 👀 Наверняка вы — @yet_another_mle | PostSniper