2
02. Запуск и отладка проекта
Alexander_KS edited this page 2025-03-13 09:07:38 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Запуск проекта через диалоговую систему.

Для того, чтобы запускать определенные фазы анализа через диалоговую систему (которую можно скачать по данной ссылке), необходимо собрать SAPFOR в отладочном режиме, например, в Debug. Далее, скопировать SAPFOR_F в папку <Visualizer/Components> и запустить диалоговую систему и не применять обновления компоненты SAPFOR. По ссылке можно загрузить сервер для Windows и диалоговую оболочку. Для Unix сервер необходимо собрать из исходников в папке src/Server/, например, командой (для сборки еще необходим boost)

g++ -O3 -std=c++17 checkUniq.cpp server.cpp -o Visualizer_2 -lpthread -lstdc++fs

Для запуска диалоговой системы потребуется установить JRE, если он отсутствует на целевой машине. Визуализатор состоит из сервера (Visualizer_2) и визуализационной оболочки (VisualSapfor.jar). Запускается всегда через Visualizer_2, а VisualSapfor.jar и Sapfor_F должны находиться в папке Components.

Запуск библиотеки SAPFOR через диалоговую систему (визуализатор).

Данная возможность позволяет запустить отладку SAPFOR прямо из визуализатора. В ряде случаев это может быть удобным. Для того, чтобы запускать SAPFOR через визуализатор, необходимо загрузить сам визуализатор по данной ссылке и поместить его в определенную папку для удобства работы, так как визуализатор создает свои служебные папки в этой же директории.

Далее следует запустить визуализатор для того, чтобы обновить все его компоненты, в том числе и сам визуализатор (рекомендуется сделать это в самом начале). После того, как были обновлены и загружены все компоненты, будет создана папка Components, в которой и будет лежать SAPFOR (Sapfor_F). Для того, чтобы уметь останавливаться в режиме отладки в своем коде SAPFOR, необходимо проделать следующие действия (инструкция приведена для Windows, для Unix действовать аналогично).

  • Переключить SAPFOR в режим RelWithDebInfo, а также отключить оптимизации для проекта SAPFOR во вкладке C/C++ -> Оптимизация-> Оптимизация (отключено /Od). Это позволит выполнять просмотр локальных переменных и корректный стек вызовов SAPFOR.
  • Запустить визуализатор из консоли с опцией -spfDeb, далее визуализатор должен зависнуть в ожидании запуска SAPFOR. Затем следует запустить проект, указав в опциях запуска отладки -client PORT (Отладка -> аргументы командной строки), где PORT - соответствующий порт, сгенерированный визуализатором при старте. Если все нормально, то после запуска визуализатор продолжит свою работу и запустит диалоговую оболочку.

После всего проделанного необходимо выполнить перекомпиляцию проекта. И если все сделано правильно, при запуске отладчика Visual Studio будет запущен визуализатор с SAPFOR и при выполнении каких-либо проходов, будет возможность остановки в проекте. Стоит отметить, что визуализатор периодически перезапускает систему SAPFOR, поэтому нужно повторно выполнять подключение / запуск в режиме отладки.

Для того, чтобы остановиться в своем проходе, необходимо запустить какой-то анализ из визуалиазатора, предварительно загрузив туда проект. Краткая инструкция по работе в визуализаторе описана в разделе Справка. Например, запуск из вкладки Анализ "Построить распределение" эквивалентно проходу -t 12, а из вкладки Преобразование "Генерация параллельного варианта" соответствует проходу -t 13. Данные проходы вызывают практически все основные проходы в тот или иной момент времени. В результате запуска анализа или преобразования из визуализатора, выполнение перейдет в библиотеку SAPFOR и можно будет остановиться в точке останова отлаживаемого прохода (если данный проход будет запущен).