Commit Graph

88 Commits

Author SHA1 Message Date
Eric Pouech e9910fee66 dbghelp: Dwarf & thunks.
- 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
2006-06-26 13:38:03 +02:00
Eric Pouech 797acdf436 dbghelp: dwarf: Tidy up leb128 reading. 2006-06-20 11:58:48 +02:00
Eric Pouech 54d6f8cc45 dbghelp: Indent the code as the rest of dbghelp module. 2006-06-20 11:58:24 +02:00
Eric Pouech 8a92d9ae49 dbghelp: dwarf: Generate the current source file and store it in dbghelp's internals. 2006-06-20 11:57:12 +02:00
Eric Pouech 7af4097d80 dbghelp: Added the ability to define a source file by dir+filename instead of only filename. 2006-06-20 11:54:40 +02:00
Eric Pouech 52db5c094e dbghelp: dwarf: Started parsing the attributes for lines (in compilation unit).
Walking the whole lot, not doing anything interesting apart from
traversing the data.
2006-06-20 11:54:17 +02:00
Eric Pouech a655b14340 dbghelp: Pass .debug_loc section information to dwarf. 2006-06-20 11:52:29 +02:00
Eric Pouech d6bd8661ff dbghelp: Dwarf & parse context.
- 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)
2006-06-20 11:52:01 +02:00
Eric Pouech 298198c318 dbghelp: Dwarf & udt members.
- correctly set size & offsets for regular udt members
- first shot at bitfields for udt members
2006-06-20 11:51:34 +02:00
Eric Pouech a2b4432107 dbghelp: Dwarf & function blocks.
- 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
2006-06-20 11:51:16 +02:00
Eric Pouech 7476f8c840 dbghelp: dwarf: Properly handle function formal parameters. 2006-06-20 11:50:39 +02:00
Eric Pouech df179e9bf1 dbghelp: Dwarf & global symbols.
Offset the addresses for global symbols (func & variables) by the base
image of the corresponding module.
2006-06-20 11:47:16 +02:00
Eric Pouech 686237e043 dbghelp: dwarf: Added support for function labels. 2006-06-20 11:46:51 +02:00
Eric Pouech 6cee154b23 dbghelp: Proper support for nested types definitions (even in C). 2006-06-20 11:46:18 +02:00
Eric Pouech 468956f4cd dbghelp: Dwarf - function scheme.
- 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
2006-06-20 11:45:48 +02:00
Eric Pouech ae67326863 dbghelp: Dwarf & locations.
- put back the block attribute parsing
- added dwarf2_compute_location to properly decode a location (at
  least starting it)
2006-06-20 11:45:33 +02:00
Eric Pouech 6d61cc0c7b dbghelp: Dwarf compiland.
- rewrote all entities loading to make use of new dwarf2_debug_info_t scheme
- commented out the location parsing which is an ugly hack
2006-06-20 11:43:17 +02:00
Eric Pouech ec8328d1b1 dbghelp: Dwarf & new scheme.
- add some helpers for the rewrite
- module is now part of the dwarf2_parse_context
2006-06-20 11:42:45 +02:00
Eric Pouech 2301d1a3d0 dbghelp: Dwarf & type references.
Removed unused type references scheme that we'll implement using a
different scheme in next patches.
2006-06-20 11:41:55 +02:00
Eric Pouech 3bd7d2976e dbghelp: Dwarf merge parsing of UDT.
Merge into a single function the struct/class/union parsing.
2006-06-20 11:41:36 +02:00
Eric Pouech c571b8506e dbghelp: Dwarf & debug info entries.
- now loading the debug info entries into specific structures
- this will help writing new functions
- this will allow handling of forward references
2006-06-20 11:41:15 +02:00
Eric Pouech b51cd5750f dbghelp: Dwarf abbrev table is now a sparse array.
- added a pool for memory allocation when parsing a compilation unit
- now using the brand new sparse array for the abbrev table
2006-06-20 11:40:55 +02:00
Eric Pouech b319600130 dbghelp: Transform a few TRACEs into WARNs (especially for unhandled stuff). 2006-06-20 11:39:58 +02:00
Eric Pouech 474c5cc2a5 dbghelp: Remove the unneeded level attribute while parsing. 2006-06-20 11:39:33 +02:00
Eric Pouech 57c662f4d1 dbghelp: Moved all Dwarf standard definitions into dwarf.h file. 2006-06-20 11:38:49 +02:00
Eric Pouech 00cf2da5d6 dbghelp: Dwarf & typedefs.
- removed lookup for name for the const modifier
- hard wire dwarf-reference to our pointer types
2006-06-20 11:37:50 +02:00
Eric Pouech d396ec31f9 dbghelp: Dwarf & module's symtype.
- we should set the module's symtype upon success
- removed unneeded bRet variable
2006-06-20 11:37:28 +02:00
Eric Pouech 24743774e8 dbghelp: Dwarf2 & AT_byte_size.
- AT_byte_size can be larger than a single byte (especially for enums)
- added missing enumeration type parsing
2006-06-20 11:37:14 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Eric Pouech 34636b026b dbghelp: Added type for array index.
- added type for array index
- correctly parsing array index type in stabs, Dwarf2 and MSC formats
- fixed SyGetTypeInfo accordingly
2006-03-06 11:42:44 +01:00
Eric Pouech be849decf6 dbghelp: First stab at supporting calling convention in function signature. 2005-12-19 18:22:54 +01:00
Eric Pouech 809edabfbe Const correctness fixes. 2005-06-27 09:53:46 +00:00
Mike McCormack f55de5cf35 Fix warnings exposed by -Wmissing-declarations and -Wwrite-strings. 2005-06-09 09:46:39 +00:00
Raphael Junqueira 54acd10dfe - fixme when unexpected children found
- no more dwarf2_check_sibling errors (ie perfect parsing count) :)
- dwarf2_parse_inlined_subroutine, dwarf2_parse_variable
2005-05-23 09:50:15 +00:00
Raphael Junqueira 79804db4e2 - better traces
- handle inclusion "levels"
- better parsing of subprogram, typedef, pointer, ... entries
- arrays, enums, const_type, reference_type parsing
- checks parsing cursors errors (when sibling value available)
- more utilities functions (dwarf2_parse_attr_as_data)
2005-05-20 09:41:10 +00:00
Raphael Junqueira 34955b9578 - basic parsing of subprogram, typedef, pointer, class, struct, enum
entries
- indirect strings support
- utilities functions (parse_byte, parse_u2, ...)
2005-05-19 11:14:39 +00:00
Raphael Junqueira 86cdb432c5 - add some Dwarf2 enums
- abbrev entries parser (with attributes)
- debug info parser skeleton (see big tag swith in dwarf2_parse).
2005-05-18 09:46:12 +00:00
Raphael Junqueira 83f001b6c7 Beginning of dbghelp dwarf2 support:
- add elf_module entry for dwarf2_parse
- stubbed dwarf2_parse in new dwarf.c file
2005-05-17 14:32:55 +00:00