Commit Graph

31 Commits

Author SHA1 Message Date
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 b039c3abd4 dbghelp: Removed stabs dump facility now that we have it (for PE files) in winedump. 2006-08-28 11:44:50 +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 f9053b91bf dbghelp: Avoid accessing a negative string index when parsing stabs entries with an empty string. 2006-07-17 14:49:05 +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 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 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 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
Alexandre Julliard 9daaab54c7 winedbg: Use Win32 types instead of long long. 2006-01-23 16:47:07 +01:00
Eric Pouech be849decf6 dbghelp: First stab at supporting calling convention in function signature. 2005-12-19 18:22:54 +01: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 f653a09d33 - N_PSYM stabs blocks (aka parameters) can also contain a typedef
- shorten some paths
2005-10-03 10:16:15 +00:00
Hans Leidekker 56058ddb15 Silence some unknown stab type messages. 2005-05-16 08:47:55 +00:00
Francois Gouget 821d4c4645 Fix nativeapi.pm so it knows about AC_HEADER_STAT().
Make the error message about unexpected '#ifdef HAVE_XXX' clearer.
Protect sys/stat.h #includes with the corresponding '#ifdef HAVE_XXX'
check.
2005-05-06 16:22:54 +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
Eric Pouech e4a44b3545 Various fixes for C++ class parsing (nesting, templates) (from test
cases provided by Michael Lin).
2005-01-31 11:29:09 +00:00
Michael Stefaniuc 5ad7d858e0 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2004-12-23 17:06:43 +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 20546c84bb - Check for string pointer being outside of the string table.
- Only parse typedefs on stabs entries that can have them.
2004-10-04 19:31:05 +00:00
Robert Shearman f2aff0ecd8 Better fix for includes with relative paths. 2004-09-06 20:23:26 +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
Robert Shearman 3088ba32fe Store the current source directory and use it when encountering a
relative include so that the full path to it is stored instead.
2004-08-23 17:56:07 +00:00
Jon Griffiths 5288361f52 Prevent the debug buffer from overflowing on long stabs. 2004-07-14 00:44:27 +00:00
Alexandre Julliard d13e0c98ad Fixed handling of includes stack. 2004-07-14 00:42:25 +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 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 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
Kevin Koltzau 5b338a87d8 Fix a few compile errors when cross compiling. 2004-04-15 04:58:55 +00:00
Eric Pouech 800864a050 First shot at implementing dbghelp. 2004-04-05 22:21:27 +00:00