Commit Graph

48 Commits

Author SHA1 Message Date
Eric Pouech cbff4f063f dbghelp: Create the notion of image (PE, ELF modules) to uniformize some handlings. 2010-03-19 12:05:59 +01:00
Eric Pouech fb169502a5 dbghelp: Extend the ELF image management to PE modules so we get a rather uniform interface to image manipulation. 2010-03-19 12:04:19 +01:00
Eric Pouech 520fcae5d2 dbghelp: For PE modules, when no debug info is present, also try to load symbols out of COFF symbol table. 2010-01-25 12:53:03 +01:00
Eric Pouech 181de55619 dbghelp: Removed some unused fields for public symbol description. 2010-01-25 12:52:46 +01:00
Marcus Meissner c39cd4c0ce dbghelp: Initialize ret (Coverity). 2009-12-29 11:07:11 +01:00
Eric Pouech bc38d3eaac dbghelp: Add support for loading dwarf debug information out of PE images. 2009-12-24 12:15:41 +01:00
Eric Pouech c6eb8104dd dbghelp: Enforce using 64bit integers for module's address and size. 2009-12-14 12:28:54 +01:00
Eric Pouech b037912c9d dbghelp: Fix a couple of casts on 64bit platforms. 2009-12-14 12:27:32 +01:00
Eric Pouech 185e5daed6 dbghelp: For mingw32 (stabs debug info), parse the FileHeader's symbol table to offset properly the global variables. 2009-12-10 11:53:57 +01:00
Andrew Talbot c702da34da dbghelp: Constify some variables. 2009-07-14 10:45:29 +02:00
Ken Thomases 3db11b98b7 dbghelp: Let stabs_parse call back for real (non-debug) symbol definitions. 2009-03-12 13:09:55 +01:00
Michael Stefaniuc 3c3a9b5081 dbghelp: Remove superfluous pointer casts. 2009-01-19 13:36:25 +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
Alexandre Julliard 97429b32f8 dbghelp: Always initialize section pointer in ImageDirectoryEntryToDataEx. 2008-07-18 11:16:02 +02:00
Eric Pouech d2fa765087 dbghelp: Fix invalid pointer dereference. 2008-04-14 12:40:22 +02:00
Rob Shearman 5dd2f1efa8 Include config.h and wine/port.h in files that use snprintf. 2008-02-29 12:39:28 +01:00
Eric van Beurden e254a1d929 dbghelp: Wrap TRACE strings using the debugstr functions and update some type casting. 2008-01-18 12:18:20 +01:00
Andrey Turkin 9e2c76c6d4 dbghelp: Implement ImageDirectoryEntryToDataEx. 2008-01-11 13:43:44 +01:00
Andrey Turkin 4c8e88df7e dbghelp: Avoid crashing on files with bogus export table. 2007-10-10 11:18:26 +02:00
Andrew Talbot dcb298b468 dbghelp: Exclude unused headers. 2007-05-01 11:42:24 +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 f2cfb374a4 dbghelp: Get rid of module_name in all traces (using Unicode flavor). 2007-03-13 21:02:42 +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
Francois Gouget 7b89fb5e35 dbghelp: Check file handles against INVALID_HANDLE_VALUE, not NULL. 2007-03-08 21:31:00 +01:00
Eric Pouech 2f0ed90c4e dbghelp: Implemented SymFindFileInPathW. 2007-02-22 12:26:16 +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 8e7b2e0fd7 dbghelp: Get rid of long int issues on 64bit platforms. 2006-11-30 13:26:39 +01:00
Andrew Talbot 2f8c51f547 dbghelp: Cast-qual warnings fix. 2006-09-08 16:07:43 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +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 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
Eric Pouech c9de37d71c dbghelp: Always set the size to public symbols to 1 when we don't know the size
so that they can only be search on their start address
2006-02-14 14:04:16 +01:00
Eric Pouech bdf32ee032 dbghelp: Brought dbghelp.h a bit closer to PSDK definitions. 2006-01-23 16:37:48 +01:00
Mike McCormack b5bd4a101a Fix gcc 4.0 warnings. 2005-09-02 14:47:36 +00:00
Eric Pouech 7ea69cc7ea - Various improvements for minidump module information
. added timestamp & checksum in PE module
  . added size & checksum in ELF module
  . wine loader now appears with its pathname.
- Implemented PE & ELF timestamp & checksum validation in
  SymFindFileInPath.
2005-03-29 13:14:08 +00:00
Eric Pouech 01aa71371b Memory consumption optimization while loading ELF debug info:
- don't map twice an ELF file for symbol lookup (in non deferred mode)
- no longer entirely map an ELF file into memory, but only the
  sections we need.
Added support for loading ELF modules thru SymLoadModule in a non life
process.
Factorisation of code for ELF module handling.
Fixes to ELF symbol loading
- drops symbols from symtab which are neither funcs nor global
  variables
- fixes some incorrect size computation for latest GCC versions.
Several cleanups and fixes.
2005-03-01 10:39:49 +00:00
James Hawkins 74d32620eb Remove c++-style comment. 2004-12-06 11:41:32 +00:00
Eric Pouech dc43edff39 - fixed loading stabs from PE modules compiled with MingW
- enhance some loading logic between ELF/PE DLL pairs
- removed unused indirect memory access function
- get rid of some GCC generated symbols
2004-11-08 20:26:22 +00:00
Robert Shearman 5f21fd47f8 - Move header parsing to callers of pe_load_debug_directory.
- Add stubs and structures for LF_PROCEDURE types.
2004-10-11 20:08:07 +00:00
Robert Shearman be7c95a3e5 Fix the loading .dbg files by no longer using RtlImageNtHeader which
would return NULL and using looking at the IMAGE_SEPARATE_DEBUG_HEADER
directly instead.
2004-10-04 19:30:50 +00:00
Alexandre Julliard 65c3765739 Authors: Robert Shearman <rob@codeweavers.com>, Eric Pouech <pouech-eric@wanadoo.fr>
- Fix debug info look-up (bug in translating the RVA of the debug
  directory).
- Fix code for adding PE export table as debug info (crash with NULL
  passed to RtlImageDirectoryEntryToData).
- Fix computation of non-relocatable ELF shared objects size.
- Fix loading (while parsing the link map) of new non-relocatable ELF
  shared objects (no longer take account load-address of link-map).
- Finished the AUTO_PUBLIC, NO_PUBLICS and PUBLICS_ONLY support for PE and ELF.
- Cleaned up public symbol management (which should now properly work).
2004-08-30 19:31:13 +00:00
Eric Pouech eb25084eee - implemented EnumDirTree, SearchTreeForFile, SymFindFileInPath,
SymMatchFileName
- made use of SymFindFileInPath to lookup .dbg and .pdb files
- fixed a crash in CodeView enum handling
2004-06-14 17:58:31 +00:00
Eric Pouech eef83b38e1 - some more fixes to elf module's symbol table handling (including
static/global diff for variables)
- now re-synchronizing ELF list in all cases (no longer depending on
  RT_CONSISTENT state)
- now should be able to differentiate properly a native from a builtin
  module
- in symbol lookup, now using size of symbol (if known)
- SymGetTypeInfo now checks and uses BaseAddress
- in MSC-CV, really generate thunk objects
2004-05-24 19:08:19 +00:00
Eric Pouech 48a865983d - removed file extension from module (and suffixed ELF modules with
<elf>)
- added generic thunk support for builtin modules (with the help of
  winebuild's new markers for thunks)
- for ELF modules, no longer generating SymTagPublicSymbols objects
  from ELF public symbol table
- because of last point, rewrote stabs symbols' address and size
  management by parsing directly the symtab instead of using
  SymTagPublicSymbols objects
- cleaned up SymTagPublicSymbols object names for native modules
- fixed off by one errors in array management
- SymLoadModule(hProc,0,0,0,0) (wine extension) will force the
  resynchronization of internal ELF modules list)
- new option (0x40000000) for Sym{Get|Set}Option to report ELF modules
  in SymEnumModules (as well as loader with <wine-loader>)
- some minor internal clean-ups
- enhanced const correctness
2004-05-18 21:29:09 +00:00
Eric Pouech 800864a050 First shot at implementing dbghelp. 2004-04-05 22:21:27 +00:00