@RokkerRuslan

Как правильно отладить программу использующую ввод/вывод?

Имеем программу на assembleer.
1 .data
  2 str:
  3         .string "test\n"
  4 
  5 .text
  6 
  7 .globl main
  8 
  9 main:
 10 
 11         pushl   $str
 12         call    printf
 13         addl    $4, %esp
 14         movl    $0, %eax
 15         ret


Компилируем, запускаем.
$ gcc -g temp.s
$ ./a.out 
test


Всё верно, пытаемся отладить:
(gdb) run > log
Starting program: /home/rokker/yadisk/tmp/temps/a.out > log

Breakpoint 1, main () at temp.s:11
pushl	$str
(gdb) s
call	printf
(gdb) s
__printf (format=0x804a020 "test\n") at printf.c:28
printf.c: No such file or directory.

Смысл в том, чтобы поместить вывод программы в файл log. Такого же типа ошибка при использовании scanf.

ubuntu 14.04,
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1),
GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7
  • Вопрос задан
  • 2694 просмотра
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
printf.c: No such file or directory.

Смысл в том, чтобы поместить вывод программы в файл log. Такого же типа ошибка при использовании scanf.

Это сообщение от gdb о том, что он не может найти файла printf.c с исходным текстом функции printf, в которую вы шагнули. К выводу в файл log не имеет никакого отношения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы