Commit Graph

100 Commits

Author SHA1 Message Date
Eric Pouech 4bcca691d1 dbghelp: When looking up for a local variable (or parameter), pass the function pointer. 2006-11-27 17:49:27 +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 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
Andrew Talbot 2f8c51f547 dbghelp: Cast-qual warnings fix. 2006-09-08 16:07:43 +02:00
Eric Pouech 83c30a55b8 dbghelp: Made stabs parsing a bit more robust.
Enhance dbghelp's robustness against bogus stabs sections found in
meetro.exe (as reported by Jan Zerebecki).
2006-08-09 23:08:00 +02:00
Robert Shearman 5c8b22f385 dbghelp: Implement SymGetSymFromAddr64. 2006-07-26 10:23:19 +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 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
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +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 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 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 983d8aea3e dbghelp: Module should be case insensitive.
When looking up a symbol name in the form module!name, the module
lookup should be insensitive.
2006-03-27 11:30:50 +02: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 2ce5eca6a5 winedbg: Added support for function parameters passed in registers.
Added correct stabs parsing for function parameters in registers.
Added a couple of helper functions to make code smaller and more
readable.
2006-02-06 11:27:32 +01:00
Dmitry Timoshkov 57a579ffcd Make more arrays const. 2006-01-24 14:00:32 +01:00
Eric Pouech 0509fe72c9 dbghelp: Return better values in module information.
- 32/64: number of symbols is now correct
- 64: the 64 bit extra fields are now initialized with some non null
  yet sensible value
2006-01-23 16:38:57 +01:00
Eric Pouech bdf32ee032 dbghelp: Brought dbghelp.h a bit closer to PSDK definitions. 2006-01-23 16:37:48 +01:00
Eric Pouech 3792b1add3 dbghelp: Symbol info.
- better coding for SYMBOL_INFO filling
- some fixes on some fields (parameters)
- now using the max size for symbol info
2006-01-23 16:26:57 +01:00
Eric Pouech 558130a696 dbghelp: StackWalk (32 and 64 bit version).
- enhance implementation of StackWalk (32 and 64 bit version) by
  making use of module information and calling for FPO
- FPO part is still non functional
- implemented SymGetModuleBase64
- stubbed SymFunctionTableAccess64
2006-01-05 13:41:25 +01:00
Eric Pouech 5d210af9dc dbghelp: Removed no longer needed 'stub' in TRACEs. 2006-01-05 12:19:18 +01:00
Eric Pouech a959732fff dbghelp: Internal search routines can now be case sensitive/insensitive.
- Now handling option SYMOPT_CASE_INSENSITIVE for symbol search.
- Quick implementation of SymSearch on top of SymEnumSymbols (should
  be the other way around).
2005-12-26 12:57:26 +01:00
Eric Pouech 750575ccf2 dbghelp: Return proper size for local & parameters in SYMBOL_INFO. 2005-12-19 18:20:47 +01:00
Eric Pouech 17d93f9855 dbghelp: Implemented SymMatchString. 2005-12-19 18:16:35 +01:00
Eric Pouech 34db4856ae dbghelp,winedbg: SYMBOL_INFO fix.
- native dbghelp returns in SYMBOL_INFO.TypeIndex the index of the
   type of the symbol (we were returning the symbol index instead)
- fixed winedbg accordingly
2005-12-05 12:00:54 +01:00
Eric Pouech 82aa9210df Implemented SymGet{Next|Prev}Line64. 2005-11-29 11:45:28 +01:00
Eric Pouech 73b0e94bb3 Now returning correct symbol flags (as native does) for function pmts
& locals in dbghelp.
Modified winedbg accordingly.
2005-11-18 12:05:44 +00:00
Eric Pouech 6b7bebfbf9 SymGetType(...,TI_GET_LENGTH,...) requires a 64 bit parameter, not a
32 bit one.
2005-11-17 11:51:53 +00:00
Eric Pouech 9c1b57c3d4 Implemented SymEnumLines. 2005-11-03 09:51:26 +00:00
Eric Pouech 61beaf48d3 - PDB: better checking for error conditions
- Fixed name demangling (when activated) when searching for a symbol
2005-03-29 11:30:57 +00:00
Peter Berg Larsen e732fc023d Janitorial: Get rid of strncpy/strncpyW. 2005-03-28 14:17:51 +00:00
Eric Pouech 499cff6f26 Cleanup of dbghelp.h (and a couple of definition fixes). The
displacements (in most of the functions) are not optional.
2005-01-31 11:34:59 +00:00
Eric Pouech 25cdb4c236 Fixed regressions introduced when moving addresses as 64bit values. 2004-11-22 18:30:10 +00:00
Eric Pouech 954a612c49 - implement SymUnDName and UndecorateSymbolName on top of
msvcrt.__unDName
- implement SYMOPT_UNDNAME support
2004-11-19 18:02:47 +00:00
Robert Shearman 6c50556e8b Fix function and structure field types so we are compatible with the
native dbghelp.
2004-10-11 21:00:17 +00:00
Francois Gouget 67aa858a31 Assorted spelling fixes. 2004-10-05 18:15:29 +00:00
Eric Pouech 6e7d28d502 - now storing vector of types on a per module basis (and giving it
back in SymEnumTypes)
- flagging local register vars as local too
2004-09-27 20:31:42 +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
Dmitry Timoshkov 1e268017d1 module->addr_sorttab may be NULL due to a hack in
elf_new_wine_thunks.
2004-08-09 18:50:21 +00:00
Eric Pouech 40f09314e4 - added support for GCC static local variables
- fixed some bugs in SYMOPT_NO_PUBLICS and SYMOPT_PUBLICS_ONLY
  handling
- in stabs parsing, just drop any debug info for a module if stabs
  parsing fails (instead of assert()'ing)
- symbol lookup now allows lookup in pure ELF modules
- fixed some bugs in symbol enumeration
2004-07-04 00:10:54 +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
Patrik Stridvall 070db4e5de Fixed some issues found by winapi_check. 2004-05-17 21:08:31 +00:00
Eric Pouech c5e0a696d9 - fixed some bugs in StackWalk (claimed for but forgotten in last
patch)
- removed location field in symt_data, and reworked the actual
  location of information based on the 'kind' field
- shorten debug channel name
- added support for bitfield in struct:s
- cleaned up source line information support
- now storing constants values as VARIANT
2004-04-30 04:15:41 +00:00
Eric Pouech eb80f29350 - implemented support for function debug start/stop and labels (msc.c
and stabs.c)
- started implementing typedef support
- functions now have a real function signature (only in stabs.c, still
  to be done in msc.c)
- small enhancements to TI_GET_TYPE for functions
- added support for functions' block and local variables in registers
  (msc.c)
- fixed some bugs in StackWalk
- constants are now stored as variants (instead of unsigned ints)
- fixed regular expression management (dbghelp's RE are not the same
  as POSIX ones)
2004-04-19 02:58:27 +00:00
Eric Pouech 800864a050 First shot at implementing dbghelp. 2004-04-05 22:21:27 +00:00