![]() |
eXeL@B —› Вопросы новичков —› Бряки в GDB |
Посл.ответ | Сообщение |
|
Создано: 24 мая 2009 06:05 · Личное сообщение · #1 Кто работал с отладчиком gdb под никсы...Вопрос такой... Есть простенький код : #include <stdio.h> main(int argc, char *argv[]) { printf("Hello All\n"); printf("Argument is: %s\n", argv[1]); } скомпилили(под названием test) и запустили...все работает отдизасмили...основной кусок: _main: 00001fa6 55 pushl %ebp 00001fa7 89e5 movl %esp,%ebp 00001fa9 53 pushl %ebx 00001faa 83ec14 subl $0x14,%esp 00001fad e800000000 calll 0x00001fb2 00001fb2 5b popl %ebx 00001fb3 8d832f000000 leal 0x0000002f(%ebx),%eax 00001fb9 890424 movl %eax,(%esp) //наша первая функция 00001fbc e849100000 calll 0x0000300a _puts 00001fc1 8b450c movl 0x0c(%ebp),%eax 00001fc4 83c004 addl $0x04,%eax 00001fc7 8b00 movl (%eax),%eax 00001fc9 89442404 movl %eax,0x04(%esp) 00001fcd 8d833a000000 leal 0x0000003a(%ebx),%eax 00001fd3 890424 movl %eax,(%esp) //и вторая 00001fd6 e82a100000 calll 0x00003005 _printf 00001fdb 83c414 addl $0x14,%esp 00001fde 5b popl %ebx 00001fdf c9 leave 00001fe0 c3 запускаем в gdb(gdb test), ставлю бряку на адрес 1fd6(функция _printf интерисуемая) break 0x1fd6 запускаем в отладчике, прога отрабатывает но не останавливается по адресу бряки. Подскажите почему не прерывается работа проги по бряке??? ![]() |
|
Создано: 25 мая 2009 12:09 · Личное сообщение · #2 С бряками разобрался..такая трабла... Как пропатчитьбинарик??? В бинарике есть две фунции //наша первая функция 00001fbc e849100000 calll 0x0000300a _puts //и вторая 00001fd6 e82a100000 calll 0x00003005 _printf ...открываю в hex редакторе ![]() Тоесть доходя до 00001fbc, а там не call puts, а jmp 00001fd6 и срабатывает только один printf...Помогите разобраться... //наша первая функция 00001fbc e849100000 calll 0x0000300a _puts //и вторая 00001fd6 e82a100000 calll 0x00003005 _printf ![]() |
|
Создано: 25 мая 2009 14:19 · Личное сообщение · #3 |
|
Создано: 25 мая 2009 14:29 · Личное сообщение · #4 |
![]() |
eXeL@B —› Вопросы новичков —› Бряки в GDB |