Commit Graph

75 Commits

Author SHA1 Message Date
Andrew Talbot 4c92ba2270 dbghelp: Declare some functions static. 2009-01-03 15:35:29 +01:00
Eric Pouech 01e69c71e0 dbghelp: Report in module's info when a module's debug information has been mismatched (dbg and pdb only). 2008-10-20 13:52:16 +02:00
Eric Pouech 2994e98850 dbghelp: Improve the symbol loader for .DBG files.
When looking for a .DBG file, first look for a .DBG file matching all
attributes, then for a .DBG partially matching the attributes.
2008-09-04 13:47:11 +02:00
Eric Pouech d600115387 dbghelp: Improve the symbol loader.
When looking for a PDB file, no longer use SymFindFileInPath as it
doesn't actually check the signatures, but use an internal function
instead.
2008-09-04 13:46:54 +02:00
Erik de Castro Lopo ab2424710f dbghelp: Fix pointer cast. 2008-04-25 11:37:50 +02:00
Eric Pouech 75803e9448 dbghelp: Extended the internal enumeration information so that we know the underlying integral type. 2008-02-07 11:59:52 +01:00
Eric Pouech a4dfe1b042 dbghelp: Added support for labels outside functions (and used it in msc parsing). 2008-02-07 11:59:52 +01:00
Markus Amsler 6f8a67f018 dbghelp: Late init hash_table. 2007-05-15 20:20:07 +02:00
Markus Amsler 8bc839a816 dbghelp: Speed up vector iteration by directly using for(). 2007-05-15 20:19:53 +02:00
Markus Amsler f94127f2ca dbghelp: Speed up vector_add by avoiding pool_realloc calls. Remove no longer needed pool_realloc. 2007-05-15 20:19:28 +02:00
Andrew Talbot a224fdb14e dbghelp: Constify some variables. 2007-04-20 13:04:11 +02:00
Eric Pouech 9a0e666733 dbghelp: Renamed pe_load_module (resp pe_load_module_from_pcs)
to pe_load_native_module (resp pe_load_builtin_module) to better describe
what those functions actually do.
2007-03-13 21:07:47 +01:00
Eric Pouech ade919c603 dbghelp: Cleanups for module loading (lookups on module name and image name are two different things)
- 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)
2007-03-13 20:58:08 +01:00
Eric Pouech ccf0be8e57 dbghelp: Implemented SymEnumTypesW. 2007-03-05 12:15:16 +01:00
Eric Pouech 3565d93ebe dbghelp: Now moving the ELF loading code to Unicode. 2007-02-22 12:32:17 +01:00
Eric Pouech c1269392e0 dbghelp: Move elf_fetch_file_info to Unicode. 2007-02-22 12:29:53 +01:00
Eric Pouech 039d54a4bf dbghelp: Make elf_enum_modules a Unicode function. 2007-02-22 12:29:27 +01:00
Eric Pouech 180127dd94 dbghelp: Get rid of temporary module_get_type_by_nameA. 2007-02-22 12:27:00 +01:00
Eric Pouech d707fe5ac3 dbghelp: Added module_get_type_by_name in Unicode form and keep the ANSI form for compatibility. 2007-02-22 12:21:14 +01:00
Eric Pouech 46684a9fb6 dbghelp: Moved ELF module loading interfaces to Unicode.
The core the code remains ANSI, as all the information is stored as ANSI.
2007-02-22 12:20:03 +01:00
Eric Pouech 6a859fb0e6 dbghelp: Move PE module loading to Unicode. 2007-02-22 11:41:15 +01:00
Eric Pouech 43dffcd05d dbghelp: Now storing module information in Unicode form. 2007-02-22 11:39:08 +01:00
Eric Pouech aac77c98a2 dbghelp: Added an ANSI copy of the module name (useful for next patches). 2007-02-22 11:28:53 +01:00
Eric Pouech 33c8ffc301 dbghelp: Added helper to define the module's name. 2007-02-22 11:28:13 +01:00
Eric Pouech 75033503e8 dbghelp: Added ability to internal store / reload a symbol with a constant value.
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.
2006-12-06 11:38:43 +01:00
Eric Pouech a1a879363d dbghelp: Added a field to the hash table to store the number of elements in the hash table.
Make use of it to get rid to module_compute_num_syms.
2006-12-06 11:37:38 +01:00
Eric Pouech 4806320b48 dbghelp: In find_nearest, now return the symbol instead of its index in module->sorttable. 2006-12-06 11:37:10 +01:00
Eric Pouech 0d942b3aaa dbghelp: Function points location is now expressed as a struct location. 2006-11-27 17:55:44 +01:00
Eric Pouech d812f8b42c dbghelp: Added infrastructure to compute variable location at runtime (as opposed to debug info parse time).
Use it to send the variables depending on not known frame register at parse time.
Made just a stub for the location computation function for dwarf2.
2006-11-27 17:55:17 +01:00
Eric Pouech 20fc25bc55 dbghelp: Use the location info structure thoughout the code to handle the location of a data variable. 2006-11-27 17:54:39 +01:00
Eric Pouech d5c4e55d36 dbghelp: Added struct location to help computing a location.
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
2006-11-27 17:54:08 +01:00
Eric Pouech 848f8c41c0 dbghelp: Pass .debug_loc section info from the ELF loader to the dwarf parser. 2006-11-27 17:53:52 +01:00
Eric Pouech 1a723f237c dbghelp: Store compiland's address in internal structures. 2006-11-27 17:49:50 +01:00
Eric Pouech 32c96adddd dbghelp: Added a process field to the modules pair structure.
This makes the code simpler to read, a bit more efficient, and
furthermore it'll be needed in future patches.
2006-11-27 17:49:01 +01:00
Eric Pouech 04c7c203fc dbghelp: Simplify code with function to get section size. 2006-11-27 17:48:44 +01:00
Eric Pouech 6c4c64265d dbghelp: Variables & registers.
- 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
2006-09-26 11:48:39 +02:00
Eric Pouech e4441d7e6f dbghelp: Module info.
- 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)
2006-06-27 11:17:34 +02:00
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 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 a655b14340 dbghelp: Pass .debug_loc section information to dwarf. 2006-06-20 11:52:29 +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 ad02173d21 dbghelp: Added another basic type for storage: the sparse array. 2006-06-20 11:40:32 +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 55f8a1b8fb dbghelp: Implemented SymGetLineFromAddrW64. 2006-05-11 12:17:03 +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 a49adbc49e dbghelp: Base and symbols.
- 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
2006-05-08 14:47:56 +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 88aa6703af dbghelp: Virtual modules.
Rewrote virtual modules handling so that it's an option to either PE
or ELF modules rather than a specific type.
2006-02-20 12:16:08 +01:00