- split up module_find_by_name in two different functions:
+ reused module_find_by_name which looks upon the module name
+ added module_is_already_loaded which looks upon the image name
- cleanup module loading using these functions (removed extra parameter
to pe_load_module_from_pcs)
Let dwarf and msc use this new feature.
As we also add global symbol without addresses, don't take those
constant symbols into account for searches by address.
Make use of it in dwarf.c to handle correctly variable location computation.
Split code to handle both location with parse time computation
(current code) and yet to come run-time computation
- more strickling differentiation variable location between
a register, and the dereferenced address defined by a
register (and possibly an offset)
- added a parameter to symt_add_func_local (and internal symbol
data struct) to help differentiate
- fix all debug parsers to confer to this new scheme
- now internally storing module info as a 64bit module structure
(the interest in not in the 64 bit side of things, but because
it allows storing lots of usefull information)
- fixed SymGetModuleInfo64W which wasn't returning the
LoadedPdbName field
- now filling for MSC files with the extended information
(instead of guessing it)
- reused the extended module info to store wine ELF module
information (link for map link, stabs vs dwarf symbol info)
- added the elf_is_in_thunk_area() function to locate an address
within the known thunk area of Wine's builtin modules
- now passing this thunk information to the dwarf parser so that it
can drop functions from the thunk areas (as dwarf symbols), so that
those functions can be later on marked as thunks in dbghelp
internals
- added the ability to tell to add_func_local whether we're adding
a local variable or a parameter (and removed the black magic
we were using)
- we can now address variables defined as an offset to a register
- implemented correct lookup when SymFindFileInPath is called to find
a PDB file
- added pdb_fetch_file_info to gather relevant information
- when looking for a PDB file (from a .EXE or a .DLL), now using
SymFindFileInPath to locate the PDB file with the correct
information
- implemented SymInitializeW (and made SymInitialize call it)
- implemented Sym{SG}etSearchPathW (and made Sym{SG}etSearchPath
call them)
- per process search path is now stored as unicode string
- report the correct image base for a symbol which is
seen as being in a builtin PE module, whilst its debug
information is gotten from an ELF module
- module_get_debug now returns a pair of modules
(the requested that has to be presented back to the client
and the effective one, which contains the debug info)
- reworked SymFromName in order to provide also the revelant
module base address