Культурный офтопик
 help / color / mirror / Atom feed
From: Sergey Stepanov <dlagovna@mail.ru>
To: "культурный офтопик" <smoke-room@lists.altlinux.org>
Subject: Re: [room] objdump- дизассемблирование , странные call- конструкции
Date: Mon, 22 May 2006 21:12:38 +0400
Message-ID: <E1FiDxO-0003MW-00.dlagovna-mail-ru@f12.mail.ru> (raw)
In-Reply-To: <E1Fi8PX-00007p-00.dlagovna-mail-ru@f31.mail.ru>


> > > Эта штука вылетает с Segmentation Fault на середине
> > > дизассемблирования крупных o-файлов. Причем
> > > запустив под gdb, вижу, что вылетает на функции strlen(),
> > > библиотеки /lib/libc.so.6
> > > Что теперь делать - незнаю..
> > > Вот уткнулся в такую бяку. Кто чем может помоч?
> > Посмотрите в сторону ndisasm из пакета nasm.
> Ок, гляну. Надеюсь в ALTMaster2.4 он есть в репозитарии.
 
Мда, посмотрел nasm - он еще более убогий чем objdump.
Его назначение - тупо преобразовывать байт-код
в ассемблерные инструкции. Большего он не умеет.
Он не понимает хедеры *.o и ELF файлов, в общем как инструмент
подходит только для элементарных действий.

 
> ЗЫЖ Всеже obj2asm - харошая вещщ. Вот только не пойму,
> кто в сегфолте виноват - obj2asm или libc.so.6? Помню,
> были какие-то ugly-баги в str функциях, может это они
> вылазиют? Это можно как-то пофиксить?

Кароче, народ, рассказываю как поборол Segmentation Fault.

Можно взять на заметку и использовать в таких критичных
случаях, когда нужно запустить бинарник, в котором есть
ошибка доступа к памяти. :)

Что я сделал - запустил декомпиляцию под valgrind, в надежде
посмотреть, что конкретно вызывает Segmentation Fault.
Valgrind запускал с опциями --tool=memcheck и 
--suppressions=file.supp, где file.supp - это
файл, в котором собран текст всех *.supp файлов из
дистрибутива valgrind. Эта опция, согласно документации,
просто подавляет вывод рапорта о обнаруженных ошибках.

Но каково было мое удивление, когда декомпиляция прошла
без ошибки! Самое интересное, что valgrind не выдал ни
одного сообщения о неправильном обращении к памяти.

Я так подозреваю что опция --suppressions не просто подавляет
рапорт об ошибке, но и позволяет программе продолжить 
выполнение при возникновении ошибки! Во как. А может быть,
просто распределение памяти декомпилятора при запуске
под valgrind оказалось таким, что программа сработала 
без ошибок памяти. В любом случае, результат использования
valgrind в качестве "багфиксера" меня удивил.


Со всяческими пожеланиями, Сергей.
http://xi.net.ru



  reply	other threads:[~2006-05-22 17:12 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-20 21:06 [room] objdump-дизассемблирование, странные call-конструкции Sergey Stepanov
2006-05-20 21:31 ` Yuri N. Glibovetz
2006-05-21  8:57   ` Artem
2006-05-22  9:10     ` [room] objdump- дизассемблирование , странные call- конструкции Sergey Stepanov
2006-05-22 10:19       ` Damir Shayhutdinov
2006-05-22 11:17         ` Sergey Stepanov
2006-05-22 17:12           ` Sergey Stepanov [this message]
2006-05-22 17:28             ` Andrey Rahmatullin
2006-05-22 17:44               ` Sergey Stepanov
2006-05-22 17:55                 ` Andrey Rahmatullin
2006-05-22 18:17                   ` Sergey Stepanov
2006-05-22 18:23                     ` Andrey Rahmatullin
2006-05-22 19:00                       ` Sergey Stepanov
2006-05-23  5:27                         ` Andrey Rahmatullin
2006-05-22 17:30             ` Sergey Stepanov
2006-05-22 17:44             ` Damir Shayhutdinov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1FiDxO-0003MW-00.dlagovna-mail-ru@f12.mail.ru \
    --to=dlagovna@mail.ru \
    --cc=smoke-room@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Культурный офтопик

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \
		smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com
	public-inbox-index smoke-room

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.smoke-room


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git