Skip to main content

Набор генераторов программ для работы с отладчиками языка С

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. Перед решением необходимо в шаблон задачи вставить ваш токен от Яндекс Диска. Инструкция

Задача при первом входе:

1.1

Демонстрация пустого хранилища:

1.2

При нажатии на кнопку "Предварительная проверка" в хранилище помещается сгенерированный исполняемый файл:

1.3 1.4

Docker, сборка и примеры запуска

Сборка образа

docker build -t perf .

Запуск контейнера в интерактивном режиме

docker run -it perf bash

Примеры создания и проверки задач

Генератор задач на профилирование (Документация)

  1. Поиск 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
      
  2. Поиск 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mse_task_generators-0.3.2.tar.gz (55.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mse_task_generators-0.3.2-py3-none-any.whl (62.9 kB view details)

Uploaded Python 3

File details

Details for the file mse_task_generators-0.3.2.tar.gz.

File metadata

  • Download URL: mse_task_generators-0.3.2.tar.gz
  • Upload date:
  • Size: 55.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for mse_task_generators-0.3.2.tar.gz
Algorithm Hash digest
SHA256 8494aa84167bd877b41caebbdc033ca95c1ea489af494449a3fbef716ffd611f
MD5 f776c338c5d2f582956c1de50ba41064
BLAKE2b-256 c84571c0e3bbb9a9f5ef4ecdba18f1bf01deaa1d185973d44617a21bd00c2362

See more details on using hashes here.

File details

Details for the file mse_task_generators-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mse_task_generators-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6143b3890582f500625cf27915d22c050ddb7cada9ce0b7bb150e5780ec286d3
MD5 c7ce9f1d49f3e09b8836e98f1e84e204
BLAKE2b-256 230ae6612812973a9dd529bdc8b1f06e26bd1cb593150b262e0ce764c0e8275b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page