Сообщения Debugger
Вредный GDB...
У меня есть многопотоковая программа, которую я хочу поотлаживать в GDB. Но после нескольких секунд работы он выдает: Program received signal SIGTTOU, Stopped (tty output), и останавливается, конечно. Я пробовал убрать этот SIGTTOU - "handle SIGTTOU noprint nostop", но в этом случае при вводе "run" или "continue" программа просто подвисает без признаков жизни. Ее можно прервать по SIGINT, но толку с этого мало. Не мог бы кто чем-нибудь помочь?
Явный и неявный вызов ld-linux.so.2.... Поможите советом, плииииз!
Ситуация следующая. У меня есть некий екзешник, в котором что-то не так
с внутренней структурой. На Red Hat 8, 9 он работает отлично.
На Red Hat 7.2 же - не работает. При запуске моментально segfault.
Но! Если я его запускаю так: /lib/ld-linux.so.2 ./myproga - все отлично
работает.
КАК ОТЛАЖИВАТЬ такую хрень? А? Под gdb:
Program received signal SIGSEGV, Segmentation fault.
0x4000bd35 in ?? ()
(gdb) bt
#0 0x4000bd35 in ?? ()
#1 0x40002ac5 in ?? ()
#2 0x40010007 in ?? ()
#3 0x4000240f in ?? ()
#4 0x40002203 in ?? ()
(gdb)
Ну что тут можно сделать? Если сделать gdb --args /lib/ld-linux.so.2 ./myproga - все работает.
Умираю, поможите!
Научите, как подменить динамический загрузчик, плиз...
Я собрал новую libc, подпатчил ld-linux.so.2 и хочу, чтобы программы загружались им. Как это сделать локально (для данного пользователя), чтобы не трогать /lib? Причем явный его вызов с переданной программой мне не подходит, мне нужно, чтобы он работал как обычный системный.
Всегда ли обнуляется сегмент BSS?
qs
Траблы с монитором при переключении graphics->text mode.... Help!
У меня LCD дисплее моего дескнота под Red Hat 9 происходит неприятная вещь: иногда, когда происходит переключение из графического режима в тектовый, экран попотухает и остается темным (не полностью черным, какие-то силуэты разглядеть можно). Больше того, это же остается и после перезагрузки по Ctrl-Alt-Del! Помогает только холодный рестарт, т.е. выкл-вкл. Может, кто лечил такую беду?
Поделитесь файликом libc-2.2.93.so для i586, плиз....
Мне нужна скомпилированная libc 2.2.93 для i586, желательно из Red Hat 8. Щас скомпилирую сам под сей хост на другой машине, но вряд ли результат будет идентичен родной библиотеке, а где ее взять готовую - не знаю :(( Если кому не лень, замыльте мне файлики /lib/i586/libc-2.2.93.so, /lib/i586/libpthread-0.10.so
с указанной системы на адрес jekb@ngs.ru. Ну или укажите ссылочку, если такая существует. Буду чрезвычайно благодарен.
Выделение памяти из заранее известного хипа....
В виндах функция VirtualAlloc выделяет место из переданного в качестве аргумента пространства. malloc/free выделяют место из какого-то общего системного пространства. А как устроить так, чтобы память выделялась из моего пространства, т.е. сымитировать VirtualAlloc?
Что за сисколл с номером -1?
У меня ловяться сисколлы с ptrace(PTRACE_SYSCALL) и иногда процесс останавливается на сисколле, у которого в orig_eax лежит -1. Что это, никто не знает?
Еще про сисколлы....
PTRACE_SYSCALL останавливает отлаживаемый процесс дважды: на входе в сисколл и на выходе из него же. EIP процесса в обоих случаях равен следующему адресу за инструкцией int 0x80. Спрашивается: а как бы так сделать, чтобы, когда мы в первый раз остановились на сисколле (т.е. на входе в него), избежать его выполнения? Т.е. я хочу НЕ выполнять данный сисколл (ну, например, в зависимости от его номера, который можно выдрать из EAX при первой остановке). Поможите советом, плизз....
Распознание системного вызова
Где бы почитать про спецификацию системных вызовов? Ну, как это вообще делается. Инструкция int 0x20, кажется, а как передаются аргументы? Большое спасибо за любую финформацию по этому поводу :)