SlideShare a Scribd company logo
Отладка в Python:
2016 edition
Moscow Python 2016
О докладчике
Имя ему - Кирилл Борисов
10 лет программирует за деньги
5,5 лет души не чает в Python
Работает в Яндексе и не знает забот
3
О чем этот доклад?
Вся наша жизнь - отладка
Иногда она случается и в продакшене
Есть много инструментов
Не нужно паниковать
4
Подходы к отладке в Python
Явное инструментирование кода
sys.settrace(func) / threading.settrace(func)
Требуют модификации кода
Подвержены влиянию кода пользователя
Подключение к интерпретатору
Можно подключаться к работающему процессу
Отлаживается не код на Python
5
Классификация: UI
GUI - графический интерфейс
PuDB
PyCharm, PyDev, WinPDB
CLI - командная строка
pdb, ipdb, rpdb
gdb + python-debuginfo
trepan2 + trepan2kc (trepan3 + trepan3kc)
6
Классификация: условия отладки
Локальная отладка
PyCharm, PyDev, WinPDB
PuDB
Удаленная отладка
rpdb, WinPDB + rpdb2
PyCharm, PyDev
trepan2 + trepan2kc (trepan3 + trepan3kc)
7
pdb
Входит в стандартную библиотеку
Основан на модуле bdb
Самый базовый CLI
Post-mortem, вызов по исключению и т.д.
8
rpdb
https://tamentis.com/projects/rpdb/
Обертка над pdb для удаленной отладки
Достаточно подключиться через nc, telnet и т.д.
Предназначался для отладки кода на Jython под Tomcat
9
ipdb
https://github.com/gotcha/ipdb
Отладчик из IPython
Автодополнение, подсветка кода и т.д.
Краткие traceback’и
10
python2-trepan
https://github.com/rocky/python2-trepan/
Попытка переписать pdb c нуля
Более гранулярная отладка
Умеет извлекать информацию из байткода
Поддерживает макросы
11
python3-trepan (trepan3k)
https://github.com/rocky/python3-trepan/
Попытка переписать pdb c нуля
Версия python2-trepan
Поддерживает 3.3 - 3.5
12
PuDB
https://github.com/inducer/pudb
Оконный интерфейс в текстовом режиме
Интеграция с IPython
Поддерживает удаленную отладку
13
Отладчик из PyDev (и PyCharm)
https://github.com/fabioz/PyDev.Debugger
Разрабатывался в составе PyDev (IDE, основанный на Eclipse)
Способен работать удаленно через pydevd
Поддерживает Python 2.4+
14
WinPDB
https://github.com/bluebird75/winpdb
Сделан на wxPython
Удаленная отладка через rpdb2
Поддерживает Python 2.5 - 3.5, PyPy
Имеет консольную версию
15
Экзотика
smiley - трассировка хода выполнения
manhole - вывод traceback всех потоков
pyrasite - инъекция кода в приложение
16
smiley
https://github.com/dhellmann/smiley
Трассировка хода выполнения программы
Запись всех изменений переменных
Клиент-серверная модель
Имеет веб-интерфейс
17
manhole
https://github.com/ionelmc/python-manhole
Выброс traceback’а всех потоков по сигналу
Запуск shell’а внутри исполняемого кода
В качестве клиента - netcat / socat / telnet
18
pyrasite
https://github.com/lmacken/pyrasite
Запуск произвольного кода внутри уже запущенного процесса
Использует gdb в качестве инструмента
pyrasite-gui, pyrasite-shell, pyrasite-memory-viewer
19
Дополнительные материалы
Python Debugger Uncovered
https://www.youtube.com/watch?v=2sEPipctTxw
How I built a power debugger out of the standard library and
things I found on the internet
https://www.youtube.com/watch?v=g8kF9tuYZ6s
Architecture of Open Source Applications: GDB
http://www.aosabook.org/en/gdb.html
20
Дополнительные материалы
pdb – Interactive Debugger
https://pymotw.com/2/pdb/
bdb — Debugger framework
https://docs.python.org/2/library/bdb.html
Advanced Python Debugging Techniques Using GDB
https://www.youtube.com/watch?v=rB9rPdMRxIA
21
Борисов Кирилл
Разработчик ПО
Контакты
@lensvol
lensvollensvol@yandex-team.ru

More Related Content

What's hot

Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
Nikita Baksalyar
 
Rust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodRust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny Novgorod
Nikita Baksalyar
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
IT61
 
Программирование с gfortran
Программирование с gfortranПрограммирование с gfortran
Программирование с gfortran
Andrey Ermolaev
 
Php and frameworks
Php and frameworksPhp and frameworks
Php and frameworks
Alexandr Drobyshevsky
 
С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!
volegg
 
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питонеekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питонеit-people
 
Migrating from Perl 5 to 6
Migrating from Perl 5 to 6Migrating from Perl 5 to 6
Migrating from Perl 5 to 6Andrew Shitov
 
"Великолепный API без Rest", Констатин Якушев (Badoo)
 "Великолепный API без Rest", Констатин Якушев (Badoo) "Великолепный API без Rest", Констатин Якушев (Badoo)
"Великолепный API без Rest", Констатин Якушев (Badoo)
Badoo Development
 
Инструменты профайлинга С++ кода
Инструменты профайлинга С++ кодаИнструменты профайлинга С++ кода
Инструменты профайлинга С++ кода
corehard_by
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
corehard_by
 
Введение в язык программирования Go
Введение в язык программирования GoВведение в язык программирования Go
Введение в язык программирования Go
Elena Grahovac
 
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++Yandex
 
Go в автобусе
Go в автобусеGo в автобусе
Go в автобусе
Artem Kovardin
 
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++Yandex
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кода
Кирилл Борисов
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
IT-Доминанта
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.Ru
Vladimir Rudnyh
 

What's hot (19)

Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
 
Rust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny NovgorodRust - GDG DevFest 2016 Nizhny Novgorod
Rust - GDG DevFest 2016 Nizhny Novgorod
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
 
Программирование с gfortran
Программирование с gfortranПрограммирование с gfortran
Программирование с gfortran
 
Php and frameworks
Php and frameworksPhp and frameworks
Php and frameworks
 
С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!
 
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питонеekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
 
Migrating from Perl 5 to 6
Migrating from Perl 5 to 6Migrating from Perl 5 to 6
Migrating from Perl 5 to 6
 
"Великолепный API без Rest", Констатин Якушев (Badoo)
 "Великолепный API без Rest", Констатин Якушев (Badoo) "Великолепный API без Rest", Констатин Якушев (Badoo)
"Великолепный API без Rest", Констатин Якушев (Badoo)
 
Инструменты профайлинга С++ кода
Инструменты профайлинга С++ кодаИнструменты профайлинга С++ кода
Инструменты профайлинга С++ кода
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
 
Введение в язык программирования Go
Введение в язык программирования GoВведение в язык программирования Go
Введение в язык программирования Go
 
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
 
Go в автобусе
Go в автобусеGo в автобусе
Go в автобусе
 
Django на Android
Django на AndroidDjango на Android
Django на Android
 
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
Александр Панин, Как мы делали кроссплатформенную библиотеку SpeechKit на C++
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кода
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
 
Как мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.RuКак мы делаем раскладку Календаря@Mail.Ru
Как мы делаем раскладку Календаря@Mail.Ru
 

Viewers also liked

Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилирование
Кирилл Борисов
 
Автоматизированные рефакторинги: AST, FST и все-все-все
Автоматизированные рефакторинги: AST, FST и все-все-всеАвтоматизированные рефакторинги: AST, FST и все-все-все
Автоматизированные рефакторинги: AST, FST и все-все-все
Кирилл Борисов
 
G1 valdez aa_u8_t2_aa2
G1 valdez aa_u8_t2_aa2G1 valdez aa_u8_t2_aa2
G1 valdez aa_u8_t2_aa2
Adri Valdez
 
Суров А. Г. Колесо Футарка
Суров А. Г. Колесо ФутаркаСуров А. Г. Колесо Футарка
Суров А. Г. Колесо Футарка
Unbib Mk
 
Qotient conversation intelligence e book
Qotient conversation intelligence e bookQotient conversation intelligence e book
Qotient conversation intelligence e book
Justin Wright
 
Summer 2016 REU Research Presentation
Summer 2016 REU Research PresentationSummer 2016 REU Research Presentation
Summer 2016 REU Research PresentationKenndrea Bazal
 
HeadhuntersAlexWooDH
HeadhuntersAlexWooDHHeadhuntersAlexWooDH
HeadhuntersAlexWooDHBerna Levin
 
Mobile Do Not Delete.ppt
Mobile Do Not Delete.pptMobile Do Not Delete.ppt
Mobile Do Not Delete.ppt
Bhavanislide2
 
Diseñografico calvache vasquez
Diseñografico calvache vasquezDiseñografico calvache vasquez
Diseñografico calvache vasquez
Jackyta Vasquez
 
Linkedin profile
Linkedin profileLinkedin profile
Linkedin profile
Sue Burnett
 
CBQ reference Letter
CBQ reference LetterCBQ reference Letter
CBQ reference LetterJohn Anthony
 
IP Statistics for Decision Makers Conference 2016
IP Statistics for Decision Makers Conference 2016IP Statistics for Decision Makers Conference 2016
IP Statistics for Decision Makers Conference 2016
Alica Daly
 
Zvit 2015
Zvit 2015Zvit 2015
Zvit 2015
Unbib Mk
 

Viewers also liked (20)

Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилирование
 
Автоматизированные рефакторинги: AST, FST и все-все-все
Автоматизированные рефакторинги: AST, FST и все-все-всеАвтоматизированные рефакторинги: AST, FST и все-все-все
Автоматизированные рефакторинги: AST, FST и все-все-все
 
G1 valdez aa_u8_t2_aa2
G1 valdez aa_u8_t2_aa2G1 valdez aa_u8_t2_aa2
G1 valdez aa_u8_t2_aa2
 
Суров А. Г. Колесо Футарка
Суров А. Г. Колесо ФутаркаСуров А. Г. Колесо Футарка
Суров А. Г. Колесо Футарка
 
Qotient conversation intelligence e book
Qotient conversation intelligence e bookQotient conversation intelligence e book
Qotient conversation intelligence e book
 
Summer 2016 REU Research Presentation
Summer 2016 REU Research PresentationSummer 2016 REU Research Presentation
Summer 2016 REU Research Presentation
 
HeadhuntersAlexWooDH
HeadhuntersAlexWooDHHeadhuntersAlexWooDH
HeadhuntersAlexWooDH
 
Sms lucu
Sms lucuSms lucu
Sms lucu
 
EMA MA Lang Lit
EMA MA Lang LitEMA MA Lang Lit
EMA MA Lang Lit
 
Dip of Man1
Dip of Man1Dip of Man1
Dip of Man1
 
Syh Ikea A
Syh Ikea ASyh Ikea A
Syh Ikea A
 
Mobile Do Not Delete.ppt
Mobile Do Not Delete.pptMobile Do Not Delete.ppt
Mobile Do Not Delete.ppt
 
Ftd90
Ftd90Ftd90
Ftd90
 
Diseñografico calvache vasquez
Diseñografico calvache vasquezDiseñografico calvache vasquez
Diseñografico calvache vasquez
 
BELP Certificate
BELP CertificateBELP Certificate
BELP Certificate
 
Linkedin profile
Linkedin profileLinkedin profile
Linkedin profile
 
CBQ reference Letter
CBQ reference LetterCBQ reference Letter
CBQ reference Letter
 
IP Statistics for Decision Makers Conference 2016
IP Statistics for Decision Makers Conference 2016IP Statistics for Decision Makers Conference 2016
IP Statistics for Decision Makers Conference 2016
 
1
11
1
 
Zvit 2015
Zvit 2015Zvit 2015
Zvit 2015
 

Similar to Отладка в Python: 2016 edition

Про асинхронное сетевое программирование
Про асинхронное сетевое программированиеПро асинхронное сетевое программирование
Про асинхронное сетевое программирование
Python Meetup
 
Mixing c++ and python
Mixing c++ and pythonMixing c++ and python
Mixing c++ and python
corehard_by
 
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Ontico
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
Cisco Russia
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
Python Meetup
 
[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)
Alexander Bausk
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоFuenteovejuna
 
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest
 
Разработка сетевых приложений с gevent
Разработка сетевых приложений с geventРазработка сетевых приложений с gevent
Разработка сетевых приложений с gevent
Andrey Popp
 
Enter: legacy code
Enter: legacy codeEnter: legacy code
Enter: legacy code
Kamil Samigullin
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
SQALab
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3it-people
 
Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"
Fwdays
 
Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)Mikhail Kurnosov
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
Badoo Development
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
DefconRussia
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
Vitaly Baum
 
Введение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinВведение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel Pin
Semen Martynov
 

Similar to Отладка в Python: 2016 edition (20)

Про асинхронное сетевое программирование
Про асинхронное сетевое программированиеПро асинхронное сетевое программирование
Про асинхронное сетевое программирование
 
Mixing c++ and python
Mixing c++ and pythonMixing c++ and python
Mixing c++ and python
 
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)
 
JPHP
JPHPJPHP
JPHP
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
 
[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)[RU] Connecting AutoCAD and Python (by Alex Bausk)
[RU] Connecting AutoCAD and Python (by Alex Bausk)
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
 
php frameworks
php frameworksphp frameworks
php frameworks
 
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
 
Разработка сетевых приложений с gevent
Разработка сетевых приложений с geventРазработка сетевых приложений с gevent
Разработка сетевых приложений с gevent
 
Enter: legacy code
Enter: legacy codeEnter: legacy code
Enter: legacy code
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3
 
Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"
 
Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
Введение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinВведение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel Pin
 

Отладка в Python: 2016 edition