LINUX.ORG.RU

Ищу костыль к DDD


1

1

Решил написать прогу на asm-е под Linux. Но вот беда: нормального отладчика, да еще чтобы запускался, не нашел. ALD не компилится:

...
readln.c:25:31: error: readline/readline.h: No such file or directory
readln.c:30:30: error: readline/history.h: No such file or directory
make[1]: *** [readln.o] Помилка 1
make[1]: Залишаю каталог "/tmp/ald-0.1.7/source"
make: *** [all-recursive] Помилка 1
EDB не запускается:
Starting edb version: 0.9.17 
Please Report Bugs & Requests At: http://bugs.codef00.com/
[load_plugins] Loading Plugin: libAnalyzer.so                 : 0x89379e8
[load_plugins] Loading Plugin: libBinarySearcher.so           : 0x8934ab0
[load_plugins] Loading Plugin: libBookmarks.so                : 0x8a38780
[load_plugins] Loading Plugin: libBreakpointManager.so        : 0x8a3b008
[load_plugins] Loading Plugin: libCheckVersion.so             : 0x8a397a8
[load_plugins] Loading Core Plugin: libDebuggerCore.so        : 0x8a3be30
[load_plugins] Loading Plugin: libDumpState.so                : 0x8a3bdc0
[load_plugins] Loading Plugin: libELFBinaryInfo.so            : 0x8a38490
[load_plugins] Loading Plugin: libEnvironment.so              : 0x8a384d0
[load_plugins] Loading Plugin: libFunctionDB.so               : 0x8a3b428
[load_plugins] Loading Plugin: libFunctionFinder.so           : 0x8a3e108
[load_plugins] Loading Plugin: libHardwareBreakpoints.so      : 0x8a3d1f0
[load_plugins] Loading Plugin: libHeapAnalyzer.so             : 0x8a3ff98
[load_plugins] Loading Plugin: libOpcodeSearcher.so           : 0x8a41020
[load_plugins] Loading Plugin: libOpenFiles.so                : 0x8a40708
[load_plugins] Loading Plugin: libReferences.so               : 0x8a41c60
[load_plugins] Loading Plugin: libROPTool.so                  : 0x8a40690
[load_plugins] Loading Plugin: libSessionManager.so           : 0x8a41b40
[load_plugins] Loading Plugin: libStringSearcher.so           : 0x8a42290
[load_plugins] Loading Plugin: libSymbolViewer.so             : 0x8a443e0
edb: symbol lookup error: edb: undefined symbol: _ZN9QListData11detach_growEPii
Один DDD запустился, но у него существенный недостаток: без исходников на понятном ему языке он отказывается отображать, что творится в памяти процесса.

Нет ли какой проги, чтобы можно было выдернуть несколько байт из заданного процесса по заданному адресу? Или способа реанимировать ALD или EDB?

Чем gdb не мил-то?

~$ sleep 1000 &
[1] 8903
~$ gdb -p 8903
....
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007f3683c1e8c0 in __nanosleep_nocancel () from /lib64/libc.so.6
(gdb) x/20x 0x00007f3683c1e8c0
0x7f3683c1e8c0 <__nanosleep_nocancel+7>:        0xf0013d48      0x3173ffff      0xec8348c3      0xea7ee808
0x7f3683c1e8d0 <nanosleep+32>:  0x89480003      0x23b82404      0x0f000000      0x3c8b4805
0x7f3683c1e8e0 <nanosleep+48>:  0xc2894824      0x03eac7e8      0xd0894800      0x08c48348
0x7f3683c1e8f0 <nanosleep+64>:  0xf0013d48      0x0173ffff      0x0d8b48c3      0x002e06b0
0x7f3683c1e900 <nanosleep+80>:  0x2948d231      0x118964c2      0xffc88348      0x9090eaeb
(gdb) disassemble 0x00007f3683c1e8c0
Dump of assembler code for function __nanosleep_nocancel:
   0x00007f3683c1e8b9 <+0>:     mov    $0x23,%eax
   0x00007f3683c1e8be <+5>:     syscall
=> 0x00007f3683c1e8c0 <+7>:     cmp    $0xfffffffffffff001,%rax
   0x00007f3683c1e8c6 <+13>:    jae    0x7f3683c1e8f9 <nanosleep+73>
   0x00007f3683c1e8c8 <+15>:    retq
End of assembler dump.
(gdb) 

Узнай пару основных команд gdb, и никакие DDD нужны не будут.

hexdump01010101
()

Нет ли какой проги, чтобы можно было выдернуть несколько байт из заданного процесса по заданному адресу?

cd /proc/<PID>
sudo dd if=mem bs=16 skip=0xffffffff 2>/dev/null | printf «%X»

0%

пойдёт?

anonymous
()

readln.c:25:31: error: readline/readline.h: No such file or directory
readln.c:30:30: error: readline/history.h: No such file or directory

Гм... Блин, тебе с английского что ли перевести надо?

Dennis7
()
Ответ на: комментарий от anonymous

Спасибо. Не думал, что dd можно ещё и так использовать.

DinoAsm
() автор топика
Ответ на: комментарий от Dennis7

http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html

The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in.

А это тут причем?

DinoAsm
() автор топика
Ответ на: комментарий от power

Спасибо. ALD откомпилировался, хоть и без GUI. Но и так сойдёт.

DinoAsm
() автор топика
Ответ на: комментарий от Dennis7

Если кто не понял, я всё понял. Но пакет инсталлить удобней.

DinoAsm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.