КС:2015:Проект:debuger: различия между версиями
Перейти к навигации
Перейти к поиску
Rkovalev (обсуждение | вклад) Новая страница: «== Что это за проект == === Введение === Linux предоставляет ряд средств для отладки пользовате…» |
Rkovalev (обсуждение | вклад) |
||
| Строка 27: | Строка 27: | ||
=== Итоговая оценка === | === Итоговая оценка === | ||
* ''' | * '''4 балла'''. Реализованы требования на зачёт в конце первого модуля. | ||
* ''' | * '''8 баллов'''. Трейсер выводит имена вызываемых функций, а также, используя отладочную информацию в отлаживаемом бинарнике, выводит значения параметров, с которыми эта функция была вызвана, номер строки и название файла исходого кода, из которых было скомпилировано место вызова. | ||
* '''+ | * '''+2 балла'''. Трейсер умеет выводить текущий стек вызовов в человекочитаемом формате. | ||
* '''+2 балла'''. Трейсер умеет выводить возвращаемое значение функции. | |||
* '''+2 балла'''. Трейсер умеет | |||
Версия от 20:17, 24 сентября 2015
Что это за проект
Введение
Linux предоставляет ряд средств для отладки пользователем своих процессов. Например, можно посмотреть в память или регистры другого процесса или даже поменять там что-то. При помощи этих средств реализованы, к примеру, gdb и strace.
Что требуется
Вам предлагается реализовать простой неинтерактивный дебагер, который будет выводить в файл историю вызовов функций в программе.
Чему вы научитесь
1. Узнаете, как устроены отладчики.
2. Узнаете, как устроена память процесса.
3. Подружитесь с эльфом и дварфом.
Начальные требования
1. Технический английский язык.
2. Знание C++.
3. Любознательность.
Критерии оценивания
Требования на зачет в конце 1-го модуля
Нужно будет реализовать программу, которая умеет трейсить вызовы функций и выводить их имена в файл.
Итоговая оценка
- 4 балла. Реализованы требования на зачёт в конце первого модуля.
- 8 баллов. Трейсер выводит имена вызываемых функций, а также, используя отладочную информацию в отлаживаемом бинарнике, выводит значения параметров, с которыми эта функция была вызвана, номер строки и название файла исходого кода, из которых было скомпилировано место вызова.
- +2 балла. Трейсер умеет выводить текущий стек вызовов в человекочитаемом формате.
- +2 балла. Трейсер умеет выводить возвращаемое значение функции.