Commit Graph

206 Commits

Author SHA1 Message Date
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 cca3d1ad0c dbghelp: Support multiple debug formats.
When several debug formats (eg stabs & dwarf2) exist in the same
module, allow to load them all (this is needed when different
compilation units are compiled with different debug options).
2006-06-20 11:57:42 +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 cff41cf9f2 dbghelp: Storage of func locals & parameters.
- 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
2006-06-20 11:47:38 +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 ad02173d21 dbghelp: Added another basic type for storage: the sparse array. 2006-06-20 11:40:32 +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
Jeremy White 466d3fe8e5 dbghelp: Fix a Solaris compilation error. 2006-06-19 22:38:20 +02:00
Ge van Geldorp 5f299d6fe5 dbghelp: Fix compilation for x86_64. 2006-06-19 21:23:05 +02:00
Michael Stefaniuc fee72b607a Yet another round of redundant NULL checks before HeapFree. 2006-06-13 11:40:23 +02:00
Pierre d'Herbemont deab874424 dbghelp: Implement fetch_thread_info on powerpc. 2006-06-09 21:08:26 +02:00
Andrew Talbot 8527f91043 dbghelp: Write-strings warning fix. 2006-06-07 15:23:55 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Eric Pouech a5b1581e48 dbghelp: SymFindFileInPath and PDB
- 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
2006-05-11 12:20:12 +02:00
Eric Pouech 2a1d8efde4 dbghelp: Removed call to registered callback when unloading a module.
First, native dbghelp doesn't do it, and it crashed windbg, likely
because we got the undocumented arguments wrong.
2006-05-11 12:19:24 +02:00
Eric Pouech c25d3ac7d5 dbghelp: Implemented SymSearchW. 2006-05-11 12:18:46 +02:00
Eric Pouech 208e701a7b dbghelp: Implemented SymEnumSymbolsW. 2006-05-11 12:18:30 +02:00
Eric Pouech 96efcbc47b dbghelp: Improved SymSearch (now using tag, index and address). 2006-05-11 12:18:06 +02:00
Eric Pouech 5eb1c98853 dbghelp: Factorize and simplify a bit symbol enumeration code. 2006-05-11 12:17:47 +02:00
Eric Pouech 08ba9cecff dbghelp: Stubbed SymGetSourceFileTokenW. 2006-05-11 12:17:23 +02:00
Eric Pouech 55f8a1b8fb dbghelp: Implemented SymGetLineFromAddrW64. 2006-05-11 12:17:03 +02:00
Eric Pouech 7d4194f57b dbghelp: Implemented SymFromAddrW. 2006-05-11 12:16:24 +02:00
Eric Pouech d2d85a1b46 dbghelp: Implemented SymGetModuleInfoW and SymGetModuleInfoW64. 2006-05-11 12:16:01 +02:00
Eric Pouech 922a7bd191 dbghelp: Implemented SymLoadModuleExW. 2006-05-11 12:15:21 +02:00
Eric Pouech 4a80e63a29 dbghelp: Implemented SymRegisterCallbackW64 and 64 -> 64W mapping function. 2006-05-11 12:14:51 +02:00
Eric Pouech 2e7d3c386a dbghelp: SymInitializeW.
- 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
2006-05-11 12:14:06 +02:00
Eric Pouech 572e18ef39 dbghelp: Updated spec file. 2006-05-11 12:13:50 +02:00