Отладка кода на C++, без запуска и компиляции

Анастасия Казакова

Имеет опыт более 8 лет в коммерческой разработке на C и C++. В прошлом занималась разработкой систем реального времени и встроенных систем, а также исследовательскими задачами в области сетевого трафика. Анастасия уверена в том, что разработка – процесс творческий, а рутинные задачи должны быть переданы “умным” инструментам. Поэтому сейчас она является частью команды JetBrains и работает менеджером по продуктовому маркетингу продукта CLion. Уже больше года занимается организацией встреч Питерского сообщества C++ разработчиков (https://www.meetup.com/St-Petersburg-CPP-User-Group/).


Когда смотришь на шаблоны, рефлексию, генерацию кода на этапе компиляции, метаклассы, возникает ощущение, что C++ поставил себе задачу максимально “спрятать” итоговый код от разработчика. А нетривиальное использование препроцессора (и многочисленные ответвления) может сделать последовательность действий программы очень неочевидной. Конечно, эти подходы избавляют разработчиков от бесконечного copy-paste и повторения похожих частей кодовой базы, но требуют более продвинутой поддержки в инструментах разработки.

Можно ли отлаживать код без непрерывного его перезапуска, без отладчика, да даже без простой компиляции всей кодовой базы? Если ли возможность поиска ошибок в коде, который нельзя собрать или запустить на локальной машине? Есть! Интегрированные среды разработки (IDE) обладают обширными знаниями и пониманием пользовательского кода, и именно они могут предоставить соответствующие инструменты.

В данном докладе будет показано, как можно было бы “отлаживать” макроподстановки, вложенные typedef, понимать типы переменных (которые в современном C++ оказываются зачастую “спрятанными”), отлаживать разные ветки препроцессора или перегрузки операторов, и многое другое с помощью по-настоящему умной IDE. Какие-то из возможностей уже доступны в CLion и ReSharper C++, а какие-то являются просто интересными идеями на будущее, которые было бы интересно обсудить с аудиторией.

Platinum спонсор

Gold спонсоры

Silver спонсоры

Community спонсоры