|
|
Classification: |
C++ |
Category: |
Debugging |
Created: |
02/12/99 |
Modified: |
09/19/2001 |
Number: |
FAQ-0632 |
Platform: |
ER5, Symbian OS v6.0, Symbian OS v6.1 |
|
Question: For any given DLL - what is the quickest way of finding all other components that statically link to it ?
Answer: Most components now release .MAP files, so this ought to be the quickest answer for you. If you have map files then you can scan for "xxx_lib_iname" to find map files for DLLs which link to xxx.lib, for example:
Searching for 'field_lib_iname'... EIKON.MAP(932):dt.o needed due to ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname EIKON.MAP(13114):00000000 .idata$7 00000000 ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname EIKON.MAP(27361): 10077348 ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname ETEXT.MAP(196):dt.o needed due to ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname ETEXT.MAP(2287):00000000 .idata$7 00000000 ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname ETEXT.MAP(4958): 10013e6c ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname PRINT.MAP(111):dt.o needed due to ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname PRINT.MAP(1420):00000000 .idata$7 00000000 ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname PRINT.MAP(2632): 10003098 ________EPOC32_RELEASE_MARM_REL_FIELD_lib_iname
This tells us that ETEXT.DLL, EIKON.DLL and PRINT.DLL are all linked to FIELD.LIB
For Symbian OS v6.0 onwards, the contents and names of the MAP files have changed slightly but the approach and the search
string are the same:
EIKCTL.DLL.map(846): ..\..\EPOC32\RELEASE\ARM4\UREL\FIELD.LIB(dh.o) (________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname) EIKCTL.DLL.map(9101): 0x1002b74c ________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname EIKPRINT.DLL.map(190): ..\..\EPOC32\RELEASE\ARM4\UREL\FIELD.LIB(dh.o) (________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname) EIKPRINT.DLL.map(2902): 0x10008ec4 ________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname ETEXT.DLL.map(446): ..\..\EPOC32\RELEASE\ARM4\UREL\FIELD.LIB(dh.o) (________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname) ETEXT.DLL.map(2903): 0x10019a5c ________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname JOTTER.APP.map(768): ..\..\EPOC32\RELEASE\ARM4\UREL\FIELD.LIB(dh.o) (________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname) JOTTER.APP.map(7794): 0x1001557c ________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname PRINT.DLL.map(232): ..\..\EPOC32\RELEASE\ARM4\UREL\FIELD.LIB(dh.o) (________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname) PRINT.DLL.map(1362): 0x1000568c ________EPOC32_RELEASE_ARM4_UREL_FIELD_LIB_iname
This tells us that in Symbian OS v6.1, EIKCTL.DLL, EIKPRINT.DLL, ETEXT.DLL, JOTTER.APP and PRINT.DLL are all linked to FIELD.LIB
|
|
|