мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| asm:gdb [14/02/2012 20:19] – arabusov | asm:gdb [20/11/2013 22:50] (текущий) – arabusov | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ===== GDB ===== | ===== GDB ===== | ||
| - | Рассмотрим код | + | Подробнее [[http:// |
| + | |||
| + | Рассмотрим код: | ||
| < | < | ||
| ;в подключаемом *.o файле стандартной библиотеки Си | ;в подключаемом *.o файле стандартной библиотеки Си | ||
| Строка 25: | Строка 27: | ||
| </ | </ | ||
| Ассемблируем и собираем программу: | Ассемблируем и собираем программу: | ||
| - | < | + | < |
| user@host ~/ | user@host ~/ | ||
| user@host ~/ | user@host ~/ | ||
| - | Запускаем gdb: | + | Запускаем |
| < | < | ||
| GNU gdb (Ubuntu/ | GNU gdb (Ubuntu/ | ||
| Строка 39: | Строка 41: | ||
| For bug reporting instructions, | For bug reporting instructions, | ||
| < | < | ||
| - | Reading symbols from /home/luke/ | + | Reading symbols from /home/user/ |
| + | (gdb) | ||
| + | </ | ||
| + | Устанавливаем точки останова: | ||
| + | < | ||
| + | Breakpoint 1 at 0x4004c0 | ||
| + | (gdb) b the_end | ||
| + | Breakpoint 2 at 0x4004d7 | ||
| (gdb) | (gdb) | ||
| </ | </ | ||
| + | Далее можно использовать следующие команды: | ||
| + | * //r// -- выполнение до точки останова | ||
| + | * //ni// или //si// -- пошаговое выполнение | ||
| + | * //p $rax// -- показать содержимое регистра //rax// | ||
| + | * //info registers// -- показать информацию обо всех регистрах | ||
| + | Кроме регистров у нас есть память, | ||
| + | ===== Задание ===== | ||
| + | Напишите собственную программу, | ||