1.3, pavlinux (ok), 20:52, 29/11/2012 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +1 +/– |
В общем прикольно, но пошагово отлаживать не выходит.
# /gdb-with-breakpoints ./example
Breakpoint 1 at 0x40054a
Breakpoint 2 at 0x400554
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040054a
2 breakpoint keep y 0x0000000000400554
(gdb) run
Starting program: /tmp/embedded-breakpoints/example
Hello,
Breakpoint 1, 0x000000000040054a in ?? ()
(gdb) step
Cannot find bounds of current function
(gdb) step
Cannot find bounds of current function
(gdb)
...
(gdb) continue
Continuing.
world!
Breakpoint 2, 0x0000000000400554 in ?? ()
(gdb)
| |
|
2.5, pavlinux (ok), 02:47, 01/12/2012 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Стрипнутую проприетарщину без отладочной информации отлаживать?
А теперь ещё раз подумай, но со стороны программиста.
Я вот не понимаю, че ваще юзера делают на опенете,
есть же бубнтуфорум, сусефррум, фидорасекта, ...
| |
2.6, ram_scan (?), 20:11, 01/12/2012 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
Смысл такой-же как в отладочных логах.
Мне например удобнее несколько бряков заэмбедить, чем на каждый отладочный пуск (которых много) заново ставить.
| |
|
3.11, прохожий (?), 10:16, 08/12/2012 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
gdb -x script
в файле
source ...
set args ....
b $file:line
...
r
это так сложно создать ?
на что только не идут люди лишь бы не читать документацию к gdb... один из самых приличных отладчиков
| |
|
4.12, ram_scan (?), 11:41, 10/12/2012 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Вот только таким макаром нельзя поставить бряк посреди функции. Хотя-бы на том основании что номера строк имеют свойство в процессе написания кода меняться.
А int3 я в код тыкал еще когда на ассемблере кодил. И находил это очень полезным.
| |
|
|
|
3.8, gaga (ok), 22:16, 04/12/2012 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Я писал. И отладчик при этом от силы пару раз использовал, и то чтобы глянуть, что в библиотеке происходит. Тем не менее, нахожу трюк полезным.
| |
|
4.10, Карбофос (ok), 01:08, 07/12/2012 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
пропиретарное дебажить нужно, ну или трассировщиком. а такой подход можно только применять для встраивания в исходники, ибо дизасмы, они суровы. или тут есть герои, которые декомпайлеры применяли, а потом с небольшой вставкой обратно собирали и всё работало? ведь об этом речь чел завел, когда заговорил про "стрипнутые" файлы
| |
|
|
|
1.9, Аноним (9), 14:46, 06/12/2012 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +1 +/– |
Точки останова для всех (запустивших вашу программу из-под wrapper'а GDB), даром. И пусть никто не уйдёт неотлаженным! =)
| |
1.14, x0r (??), 10:18, 25/01/2013 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
не получается собрать. поставил binutils и binutils-devel
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)
[xor@gdrca:~/embedded-breakpoints-master]$ ./build.sh
+ gcc -Wall -std=c99 -lbfd -o gdb-with-breakpoints gdb-with-breakpoints.c
/tmp/cc6OMnYK.o: In function 'main':
gdb-with-breakpoints.c:(.text+0x5a): undefined reference to 'bfd_openr'
gdb-with-breakpoints.c:(.text+0x6f): undefined reference to 'bfd_perror'
| |
|