мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Последняя версияСледующая версия справа и слева
asm:gdb [14/02/2012 20:27] arabusovasm:gdb [14/02/2012 20:29] arabusov
Строка 1: Строка 1:
 ===== GDB ===== ===== GDB =====
-Подробнее [[http://wasm.ru/article.php?article=asm_linux_for_c#chapter.gdb|здесь]]; на текущей странице представлена сжатая версия для занятия с учётом специфики ассемблера **nasm** +Подробнее [[http://wasm.ru/article.php?article=asm_linux_for_c#chapter.gdb|здесь]]; на текущей странице представлена сжатая версия для занятия с учётом специфики ассемблера **nasm**
-Рассмотрим код+ 
 +Рассмотрим код:
 <code=asm>;Точка входа "_start" на самом деле находится  <code=asm>;Точка входа "_start" на самом деле находится 
 ;в подключаемом *.o файле стандартной библиотеки Си ;в подключаемом *.o файле стандартной библиотеки Си
Строка 29: Строка 30:
 user@host ~/asm/example $ gcc example.o -o example -g user@host ~/asm/example $ gcc example.o -o example -g
 user@host ~/asm/example $ </code> user@host ~/asm/example $ </code>
-Запускаем gdb:+Запускаем **gdb**:
 <code=bash>user@host ~/asm/example $ gdb ./example <code=bash>user@host ~/asm/example $ gdb ./example
 GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08 GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Строка 56: Строка 57:
   * //info registers// -- показать информацию обо всех регистрах   * //info registers// -- показать информацию обо всех регистрах
 Кроме регистров у нас есть память, и частный случай памяти — стек. Как их посмотреть? Команда //x/формат адрес// отображает содержимое памяти, расположенной по адресу в заданном формате. Формат это (в таком порядке) количество элементов, буква формата, и размер элемента. Буквы формата: o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char) and s(string). Размер: b(byte), h(halfword), w(word), g(giant, 8 bytes). Кроме регистров у нас есть память, и частный случай памяти — стек. Как их посмотреть? Команда //x/формат адрес// отображает содержимое памяти, расположенной по адресу в заданном формате. Формат это (в таком порядке) количество элементов, буква формата, и размер элемента. Буквы формата: o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char) and s(string). Размер: b(byte), h(halfword), w(word), g(giant, 8 bytes).
 +===== Задание =====
 +Напишите собственную программу, выполняющую арифметические или логические действия с содержимым регистров. Результат выполнения проконтролируйте с помощью отладчика **gdb**