Symbian
Symbian OS Library

FAQ-0632 How can I find which DLLs are statically linked to XYZ.LIB?

[Index][spacer] [Previous] [Next]



 

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