Решил изучить gdb, и вот застрял на простом (и не могу понять че нитак, короче торможу):
1. собираю тестовую программу
[kostya@kostya test3]gcc -g test.c -o test
2. Запускаю gdb
[kostya@kostya test3]$ gdb test
GNU gdb Red Hat Linux (6.3.0.0-1.122rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) break 8
Breakpoint 1 at 0x80483c5: file test.c, line 8.
(gdb) r
Starting program: /home/kostya/projects/test3/test
[1]+ Stopped gdb test
[kostya@kostya test3]$
Так вот, немогу понять почему выходит из gdb, что еще не учел? Дистриб Fedora Core 5. Проделал тоже самое под debian - останавливается на нужной строке.
GDB
GDB
Hе так стpашен Programmer, как его Software...
Вот под дебианом приветствие gdb
kostya@server2:~/test$ gdb test
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1".
Там все ок.
kostya@server2:~/test$ gdb test
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1".
Там все ок.
Hе так стpашен Programmer, как его Software...
- grub
- Неотъемлемая часть форума
- Сообщения: 849
- Зарегистрирован: 13 сен 2006, 10:29
- Откуда: Минск
- Контактная информация:
Я имел в виду либы не самого gdb, а либы, которые динамически подключает гоняемая под ним программа....
Впрочем, не спец в gdb, так что не уверен, что копать стоит в этом направлении. Но мне по-дилетантски кажется, что момент загрузки бинаря и момент динамической линковки вполне могут оказаться разными временными точками... И что выход из gdb может происходить, если строке в 7-й кода написано #include somelib.h, а вот в соответствующей точке выполнения (до вашего брейкпойнта, но после загрузки самого бинаря и демонстрации приветствия gdb) этой самой somelib в системе не обнаруживается...
Еще раз повторюсь, это может быть категорической неправдой.
Впрочем, не спец в gdb, так что не уверен, что копать стоит в этом направлении. Но мне по-дилетантски кажется, что момент загрузки бинаря и момент динамической линковки вполне могут оказаться разными временными точками... И что выход из gdb может происходить, если строке в 7-й кода написано #include somelib.h, а вот в соответствующей точке выполнения (до вашего брейкпойнта, но после загрузки самого бинаря и демонстрации приветствия gdb) этой самой somelib в системе не обнаруживается...
Еще раз повторюсь, это может быть категорической неправдой.
Змагайся і адпачывай!
Ты прав, я думаю
[kostya@kostya test3]$ gdb test
(gdb) info sharedlibrary
No shared libraries loaded at this time.
Поставил ddd, в окне GDB Console
(gdb) info sharedlibrary
From To Syms Read Shared Object Library
0x41000820 0x410151df Yes /lib/ld-linux.so.2
0x418a25f0 0x4198f9a8 Yes /lib/libc.so.6
Тогда, вопрос: что установить в настройках GDB по умолчанию. Хотя уже есть счастье - DDD (гуевая прога использующая GDB), под которой все шикарно работает .
[kostya@kostya test3]$ gdb test
(gdb) info sharedlibrary
No shared libraries loaded at this time.
Поставил ddd, в окне GDB Console
(gdb) info sharedlibrary
From To Syms Read Shared Object Library
0x41000820 0x410151df Yes /lib/ld-linux.so.2
0x418a25f0 0x4198f9a8 Yes /lib/libc.so.6
Тогда, вопрос: что установить в настройках GDB по умолчанию. Хотя уже есть счастье - DDD (гуевая прога использующая GDB), под которой все шикарно работает .
Hе так стpашен Programmer, как его Software...