КС:2015:Проект:debuger — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница: «== Что это за проект == === Введение === Linux предоставляет ряд средств для отладки пользовате…»)
 
(Итоговая оценка)
Строка 27: Строка 27:
  
 
=== Итоговая оценка ===
 
=== Итоговая оценка ===
* '''3 балла'''. Реализованы требования на зачёт в конце первого модуля.
+
* '''4 балла'''. Реализованы требования на зачёт в конце первого модуля.
* '''7 баллов'''. Трейсер выводит имена вызываемых функций, а также, используя отладочную информацию в отлаживаемом бинарнике, выводит значения параметров, с которыми эта функция была вызвана, номер строки и название файла исходого кода, из которых было скомпилировано место вызова.
+
* '''8 баллов'''. Трейсер выводит имена вызываемых функций, а также, используя отладочную информацию в отлаживаемом бинарнике, выводит значения параметров, с которыми эта функция была вызвана, номер строки и название файла исходого кода, из которых было скомпилировано место вызова.
* '''+1 балл'''. Трейсер умеет выводить текущий стек вызовов.
+
* '''+2 балла'''. Трейсер умеет выводить текущий стек вызовов в человекочитаемом формате.
* '''+2 балла'''. Поддерживаются многопоточные программы.
+
* '''+2 балла'''. Трейсер умеет выводить возвращаемое значение функции.
* '''+2 балла'''. Трейсер умеет отслеживать переключение контекста в корутинах.
+

Версия 23:17, 24 сентября 2015

Что это за проект

Введение

Linux предоставляет ряд средств для отладки пользователем своих процессов. Например, можно посмотреть в память или регистры другого процесса или даже поменять там что-то. При помощи этих средств реализованы, к примеру, gdb и strace.

Что требуется

Вам предлагается реализовать простой неинтерактивный дебагер, который будет выводить в файл историю вызовов функций в программе.

Чему вы научитесь

1. Узнаете, как устроены отладчики.

2. Узнаете, как устроена память процесса.

3. Подружитесь с эльфом и дварфом.

Начальные требования

1. Технический английский язык.

2. Знание C++.

3. Любознательность.

Критерии оценивания

Требования на зачет в конце 1-го модуля

Нужно будет реализовать программу, которая умеет трейсить вызовы функций и выводить их имена в файл.

Итоговая оценка

  • 4 балла. Реализованы требования на зачёт в конце первого модуля.
  • 8 баллов. Трейсер выводит имена вызываемых функций, а также, используя отладочную информацию в отлаживаемом бинарнике, выводит значения параметров, с которыми эта функция была вызвана, номер строки и название файла исходого кода, из которых было скомпилировано место вызова.
  • +2 балла. Трейсер умеет выводить текущий стек вызовов в человекочитаемом формате.
  • +2 балла. Трейсер умеет выводить возвращаемое значение функции.