Набор генераторов программ для работы с отладчиками языка С
Project description
Оглавление
Инструкция по развертыванию проекта
Требования к системе
- ОС: Linux (рекомендуется Ubuntu 20.04 LTS или выше)
- Python: версия 3.8 или выше
- Компилятор: GCC (GNU Compiler Collection)
- Инструменты отладки и профилирования:
- Valgrind
- GDB (GNU Debugger)
- Gprof (GNU Profiler)
1. Установка зависимостей
Установка Python, PIP и venv
sudo apt update
sudo apt install python3 python3-pip python3-venv
Установка GCC, Valgrind, GDB, Gprof
sudo apt install gcc valgrind gdb binutils
Проверка версий
python3 --version
pip3 --version
python3 -m venv --help
gcc --version
valgrind --version
gdb --version
gprof --version
2. Клонирование репозитория
git clone https://github.com/moevm/mse1h2025-perf.git
cd mse1h2025-perf
3. Установка Python-зависимостей
python3 -m venv venv
source venv/bin/activate
(venv) pip install -r requirements.txt
4. Установка пакета
Детальная информация о pip пакете проекта - Документация
5. Загрузка исполняемого файла на Яндекс.Диск
Инструкция по запуску генератора с примером загрузки исполняемого файла на Яндекс.Диск - Документация
Функционал проекта
Примеры использования генераторов задач
Проект поддерживает 3 генератора задач. Ниже приведены примеры их запуска.
Генератор 1:
Создание задач на профилирование
generators.profiling1 1 init -o test.out
Проверка задач на профилирование
./test.out
gprof -bp test.out gmon.out
generators-profiling1 finding_in_main check -b test.out -a reorganization -s 1
Параметры:
Первый параметр: тип задачи (1, 2)Второй параметр: создание задачи или проверка ответа (init, check)- С полным списком параметров можно ознакомиться в документации к генератору - Документация
Генератор 2:
Создание задач на утечку памяти
python3 -m generators.leak_generator -m 1
Проверка задач на утечку памяти
python3 -m generators.leak_generator -m 2
Параметры:
--mode, -m: создание задачи иили проверка ответа (1, 2)- С полным списком параметров можно ознакомиться в документации к генератору - Документация
Генератор 3:
Создание задач на отладку
python3 -m generators.cycle_generator -m 1
Проверка задач на отладку
python3 -m generators.cycle_generator -m 2
Параметры:
--mode, -m: создание задачи или проверка ответа (1, 2)- С полным списком параметров можно ознакомиться в документации к генератору - Документация
CodeRunner Moodle
Для демонстрации работоспособности модуля была создана тестовая задача на Moodle. Перед решением необходимо в шаблон задачи вставить ваш токен от Яндекс Диска. Инструкция
Задача при первом входе:
Демонстрация пустого хранилища:
При нажатии на кнопку "Предварительная проверка" в хранилище помещается сгенерированный исполняемый файл:
Docker, сборка и примеры запуска
Сборка образа
docker build -t perf .
Запуск контейнера в интерактивном режиме
docker run -it perf bash
Примеры создания и проверки задач
Генератор задач на профилирование (Документация)
-
Поиск n-ой по времени выполнения функции, вызванной из
mainКоманды:
-
generators-profiling1 finding_in_main init -o test.out -s 1
-
./test.out
-
gprof -bp test.out gmon.out
-
generators-profiling1 finding_in_main check -b test.out -a reorganization -s 1
-
-
Поиск n-ой по времени выполнения функции, вызванной из
find_meКоманды:
-
generators-profiling1 finding_in_find_me init -o test.out -s 1
-
./test.out
-
gprof -b test.out gmon.out --graph=find_me
-
generators-profiling1 finding_in_find_me check -b test.out -a kilt -s 1
-
Генератор задач на утечку памяти (Документация)
Команды:
-
generators-leak-generator -m 1
-
valgrind ./generated/leaks_generated -
generators-leak-generator -m 2
Генератор задач на отладку (Документация)
Команды:
-
python3 -m generators.cycle_generator -m 1
-
valgrind --leak-check=full ./generators/cycle_generator/generators_files/generated_code_with_cycle
-
python3 -m generators.cycle_generator -m 2
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mse_task_generators-0.3.tar.gz.
File metadata
- Download URL: mse_task_generators-0.3.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c45d5f625971796f494c894b2569a8ecb1adae34adf99940250a9ffdcb2bf2bd
|
|
| MD5 |
9a7fbe78486e0ca4520d13ac650b0bd9
|
|
| BLAKE2b-256 |
4517c3a684f1cdd1229a288243497e2838e7c455460cc8fa4c8b33627e117d86
|
File details
Details for the file mse_task_generators-0.3-py3-none-any.whl.
File metadata
- Download URL: mse_task_generators-0.3-py3-none-any.whl
- Upload date:
- Size: 35.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
533356d0d74b88d15ada5ef71e99b7fc8a11d4cc778c5e22c43081a759a13d75
|
|
| MD5 |
42ab9139bfb8cc3ef09c686e219f7571
|
|
| BLAKE2b-256 |
1ee7c2bcfb62044eab91c498de9ab3411023926ac0c5a7a627d955a03a3747da
|