Украшаем молоток: как автоматизировать разбор проблем в дебаггере

С++

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

Сергей Козлов

Лаборатория Касперского

Пишет на С++ уже почти четверть века. За это время довелось заниматься многими разноплановыми проектами: видеонаблюдением, IP-телефонией, видеоконференциями и т.д.

А последние 10 лет посвящены работе в Лаборатории Касперского. Не чурается покопаться в crash-дампах или взять в руки дизассемблер.

В свободное время предпочитает путешествовать с семьёй или мучить компьютерные железки.

Тезисы

Видео

Показываем подходы к автоматизации разбора проблем на примере библиотечки скриптов, опубликованной нами в OpenSource. Она предназначена для использования c WinDBG и с GDB и помогает в автоматизации ряда рутинных задач, возникающих при анализе причин падения программ как при отладке вживую, так и при работе с дампами памяти.

Проводим лайвкодинг-демонстрацию нескольких скриптов в отладчике, в частности:
* поиск исключений, произошедших в потоке ранее (Win);
* вывод стеков 32-битного приложения для 64-битного kernel-mode дампа (Win);
* поиск потребителей большого количества памяти:
- анализ с AppVerifier'ом
- анализ без AppVerifier'а (GDB)
* что делать, если упали в boost::coroutine (GDB).