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

Uploaded Python 3

File details

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

File metadata

  • Download URL: mse_task_generators-0.3.1.tar.gz
  • Upload date:
  • Size: 56.0 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.1.tar.gz
Algorithm Hash digest
SHA256 aefecf2376613166328da6eb87c9b5b725f98af18a07b07c6c21ea5c0dac6b0f
MD5 d7d946a364959ec5c76c2b9af3e8977a
BLAKE2b-256 eec1d0aea6a4ec836079d11992d320f180d654fd7a810be734d99219a272e25d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mse_task_generators-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a08bd5210326ef2557f0ba18da9ffc9d3a1b622e0953ceb038d8a3a689521a92
MD5 832b9da43257138324473619ab4d968a
BLAKE2b-256 df71c00a0e6c9c840d8dbc2bb6f8eb803508d198bc8a6405121b72a086f024f8

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