Kwestie związane z przeglądaniem plików *.OBJ i *.LIB w projektach PIC
Re: Odp: pomocy =?iso-8859-2?Q?uk=B3ady?= PIC
Date: Sat, 14 Aug 1999 22:23:22 +0200
From: MrWebsky <MrWebsky_at_nospam_friko6.onet.pl>
Subject: Re: Odp: pomocy =?iso-8859-2?Q?uk=B3ady?= PIC
NameNo wrote:
Z nieznanych mi przyczyn kompilatory na 8 bitowe procesory nie mają
narzędzi do
podglądania i disassemblowania plików *.OBJ i *.LIB co pozwoliłoby na
szybkie
wyjaśnienie wątpliwości dotyczących efektyności kodu zawartego w
firmowych
bibliotekach.
Dziwne, jak uruchomisz debuger (a takie zawsze są) to możesz sobie
prześledzić kod bibloteki bez problemu.
NameNo
Na upartego da się tak, ale debugery służą do podglądania gotowych
programów i nie potrafią wedrzeć się do biblioteki ani do *.OBJ.
Trzeba napisać program "na niby", który wymusi dołączenie odpowie
dniej częsci bibiloteki, żeby ją sobie podejrzeć.
Teoretycznie z pliku *.OBJ da się wyciągnąć wiele ciekawych infor-
macji. Pliki *.OBJ zawierają m.in.:
-listę eksportową (spis elementów modułu udostępnianych innym
modułom do wykorzystania)
-listę importową (spis elementów które moduł musi otrzymać z innych
modułów w czasie linkowania)
-kod modułu (kod binarny programu przygotowany do uzupełnienia adresami
które ustali linker)
-opis zadeklarowanych w module zmiennych (na podstawie tego opisu linker
rozmieszcza w pamieci zmienne odpowiednio grupując je w bloki o
podobnych wlasnosciach (inicjalizowane zerem, wartosciami,
nieinicjalizowane, stałe, itp.))
Pewnie w 95 przypadkach na 100 informacje te nie są potrzebne, ale
czasami szkoda, że nie można się do tego dobrać.
MrWebsky