Eric Pouech
f939b0853d
dbghelp: Elf for wine and spec definitions.
...
Enhancement over previous fix (we don't need to insert NOTYPE symbols
in our public symbol table, so drop them as early as possible).
2006-06-26 13:38:02 +02:00
Eric Pouech
41ee9853f7
dbghelp: Elf for wine and spec definitions.
...
- fixed regression when looking for winebuild's special symbols in ELF symtab
- STT_NOTYPE is still accepted as a valid symbol type (on top of STT_FUNC and STT_OBJECT)
2006-06-22 12:29: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
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