Как настроить точку останова в GDB с помощью функции общей библиотеки - PullRequest
1 голос
/ 19 октября 2010

У меня проблема с GDB, он не был остановлен в одной функции.Можете ли вы объяснить, почему и как остановить программу после вызова strcpy?

grzes@trampek:~/poligon$ gdb ./char_array2 
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/grzes/poligon/char_array2...done.
(gdb) list
1    #include <stdio.h>
2    #include <string.h>
3    
4    int main() {
5       char str_a[20];
6       printf("ssss");
7       strcpy(str_a, "Hello, world!\n");
8       printf(str_a); 
9    }
10    
(gdb) break main
Breakpoint 1 at 0x8048465: file char_array2.c, line 4.
(gdb) run
Starting program: /home/grzes/poligon/char_array2 

Breakpoint 1, main () at char_array2.c:4
4    int main() {
(gdb) break strcpy
Breakpoint 2 at 0x1a1205
(gdb) cont
Continuing.
ssssHello, world!

Program exited with code 016.
(gdb) q
grzes@trampek:~/poligon$ 

1 Ответ

7 голосов
/ 19 октября 2010

Возможно, вы используете gcc __builtin_strcpy.Скомпилируйте с gcc -fno-builtin и посмотрите, поможет ли это.

Для получения дополнительной информации см .: http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/C-Dialect-Options.html#C-Dialect-Options

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...