Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Почему не срабатывает точка останова в gdb на функцию strcpy  (Прочитано 1326 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн z00t

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Прошу помочь! Я только начинаю програмировать на Си в Linux, заодно и осваиваю отладчик gdb. Ниже представлен код и ошибка компилятора. Кроме этого пытаюсь поставить точку останова на функцию strcpy, но она не срабатывает. В чем причина понять не могу. Если кто-нибудь сталкивался с подобной проблемой, помогите пожалуйста начинающему программисту. Есть предположение, что не установлен какой-то пакет, но какой я не знаю.

z00t@z00t-VirtualBox:~$ gcc -g -o char_array2 char_array2.c
char_array2.c: In function ‘main’:
char_array2.c:8: warning: format not a string literal and no format arguments
z00t@z00t-VirtualBox:~$ gdb -q ./char_array2
Reading symbols from /home/z00t/char_array2...done.
(gdb) list
1 #include <stdio.h>
2 #include <string.h>
3
4 int main() {
5 char str_a[20];
6
7 strcpy(str_a, "Hello, world!\n");
8 printf(str_a);
9 }
(gdb) b strcpy
Function "strcpy" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (strcpy) pending.
(gdb) r
Starting program: /home/z00t/char_array2
Hello, world!

Program exited with code 016.
(gdb)
« Последнее редактирование: 01 Октября 2012, 06:35:25 от z00t »

Оффлайн kupamaan

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: Не пойму в чем проблема
« Ответ #1 : 30 Сентября 2012, 00:22:15 »
(gdb) start

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Re: Не пойму в чем проблема
« Ответ #2 : 30 Сентября 2012, 14:25:12 »
(gdb) b strcpyОзначает поставить брейкпоинт "внутри" strcpy. (Конечно, если я не ошибаюсь)

Пользователь решил продолжить мысль 30 Сентября 2012, 14:28:21:
В документации есть вот это:

Цитировать
break linenum
Set a breakpoint at line linenum in the current source file. That file is the last file whose source text was printed. This breakpoint stops your program just before it executes any of the code on that line.

break filename:linenum
Set a breakpoint at line linenum in source file filename.

Поэтому пиши
(gdb) b 7
« Последнее редактирование: 30 Сентября 2012, 14:29:27 от aSmile »

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Не пойму в чем проблема
« Ответ #3 : 30 Сентября 2012, 23:13:22 »
z00t, название темы желательно сменить на более информативное (см. п. 2.4 Правил форума).

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.