Determining DLL Address Mapping in a Process (Windows CE 5.0)
When you are using target control debugging commands, you may need to determine which dynamic-link library (DLL) is mapped to a specific address in a process. For more information on syntax, see Target Control Debugging Commands.
To determine which DLL is mapped to a specific address in a process
- Subtract the process base address from the address of interest.
- The process base address is shown within the output of mi full as the slot base.
- Use the gi mod command to obtain the address of all modules loaded in the system and view the dwVMBase column.
- View the output of gi mod for a module that covers the address you calculated in step 1.
- Look up the resulting address in the dwVMBase column of the gi mod output.
In this example, Unimodem.dll is the user of the page.
For example, to determine what DLL is using the page at 0x9db00000 within Device.exe, subtract the process base address from the address of interest.
0x09db0000 - 0x08000000 = 0x01db0000
The following example shows a truncated version of the table output using mi full for the Device.exe process.
Memory usage for Process 80209c74: 'device.exe' pid 3 Slot base 08000000 Section ptr 817d5000 09d90000(0): -CCCCCWr- 09db0000(0): -CCCCCW-R- 09dc0000(0): -CCCCCWrR-
The following example shows a truncated version of the output of the gi mod command.
MOD: Name pModule :dwInUSE :dwVMBase:CurZone M00: unimodem.dll 816a9d08 00000008 01db0000 00000000 M01: TAPI.DLL 8173f000 00000008 01dc0000 00000000 M02: IR.DLL 8173f290 00000020 01cd0000 00000000 M03: keybddr.dll 8173f468 00000020 01d30000 00000000
Send Feedback on this topic to the authors