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.
(except for parameters which are converted into local variables).
Rewrote dwarf2_find_attribute so that it takes into account the
abstract origin information when available.
A+
Make use of it to store the frame information for a dwarf function
(either because frame's location is a location list, or because one of
the function's variables is not properly computed at parse time).
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
- split the data structures for walking through the data (abbrev,
cu... -> traverse_ctx) and data manipulation/loading (-> parse_ctx)
- created dwarf2_parse_compilation_unit() for clarity
- added section structure to gather information about all ELF sections
related to all dwarf2 sections (more to come)
- properly handling function blocks
- handling of variables inside of blocks (either on stack, or in a
register, or relative to the frame register if any)
- added dwarf2_subprogram_t structure so that we can pass around
relevant information for function parsing
- various fixes to follow better the functions definition (nesting,
subroutines...)
- don't directly parse types referenced by a subprogram, they'll be
loaded anyway when needed