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.tar.gz (27.7 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-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

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

Hashes for mse_task_generators-0.3.tar.gz
Algorithm Hash digest
SHA256 c45d5f625971796f494c894b2569a8ecb1adae34adf99940250a9ffdcb2bf2bd
MD5 9a7fbe78486e0ca4520d13ac650b0bd9
BLAKE2b-256 4517c3a684f1cdd1229a288243497e2838e7c455460cc8fa4c8b33627e117d86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mse_task_generators-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 533356d0d74b88d15ada5ef71e99b7fc8a11d4cc778c5e22c43081a759a13d75
MD5 42ab9139bfb8cc3ef09c686e219f7571
BLAKE2b-256 1ee7c2bcfb62044eab91c498de9ab3411023926ac0c5a7a627d955a03a3747da

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