#cpp
Закрыт. На этот вопрос невозможно дать объективный ответ.
Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Update the question so it
can be answered with facts and citations by editing this post.
Закрыт 1 год назад.
К примеру есть такая программа. Так вот, с чего бы вы начали? Просто открыли файл
с main функцией и от него уже дальше пошли? Или может имеются какие-то другие методы?
Ответы
Ответ 1
Хороший вопрос на самом-то деле, попытаюсь дать хотя бы если не развернутый, то хотя бы дельный совет. Попытайтесь понять что делает данная программа, для чего она вообще предназначена. Загрузите проект в какую-нибудь из широко известных IDE - подойдет Eclipse, CodeBlocks, Visual Studio, QT Creator. Все эти IDE индексируют типы и их объявления, что позволяет их потом искать а также находить ссылки на них в программе - search for references, иногда очень помогает. Можете запустить проект в дебаг режиме, и поставить точку останова в интересующем вас месте. Начать дебажить можно с главной функции - main'а. Если что-то сильно не понятно, можно попытаться пообщаться с разработчиком программы. Обычно это помогает. Поизучайте типы, структуры, классы, функции, методы, и прочие объявления программы. Как правило если Вы знаете, что Вы ищете (например, алгоритм обработки пакетов, приходящих от клиента к серверу), то процесс поиска искомого места в программе не должен занять много времени. Никто не может запретить Вам дебажить отдельные функции, и скармливать им какие-то свои данные (при необходимости). Одним словом используйте все доступные Вам средства, и успех не заставит себя долго ждать + не забывайте заглядывать в документацию и гугл.Ответ 2
Я пытаюсь что-то добавить и/или поменять. Ну то есть условно кнопочка или параметр командной строки. Во время отладки выставлять брейкпоинты в определённых местах и смотреть call stack. Да, важное забыл сказать. Под MSVS есть очень полезный плагин, называется Visual Assist. Вообще он платный, но он стоит своих денег (есть триальный период). Улучшает подсвечивание, автокомплит человеческий, но самое главное в контексте данного вопроса - это поиск и переход по упоминанием символов. Анализатор кода намного круче встроенного, очень удобно. Плюс появляется кнопочка Go которая в любой момент перебрасывает между определением/объявлением чего бы то ни было (что сейчас под курсором). Анализировать код становится намного проще. Для других платформ (для всех на самом деле, IDE-независимая штука) я могу порекомендовать Klokwork. Оно правда для одного будет слишком, скорее для команды разработчиков, но проще решений я не знаю. Там и анализ структуры, и поиск ошибок (что-то вроде lint, но интересней) и всё что угодно. Тоже вроде не бесплатный, зато невероятно мощный и вроде есть триальный период. В принципе, есть аналоги, но я с ними не работал, так что мне рекомендовать сложно.Ответ 3
Можно скормить программу в Umbrello (входит в КДЕ) или в Медузу и посмотреть аннотированные исходники и диаграмму классов.
Комментариев нет:
Отправить комментарий