Commit Graph

495 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 04c7c203fc dbghelp: Simplify code with function to get section size. 2006-11-27 17:48:44 +01:00
Peter Oberndorfer a39f3da5fc dbghelp: Do not write to array element -1. 2006-11-09 10:36:35 +01:00
Peter Oberndorfer 2b06143031 dbghelp: Initialize BOOL elements with FALSE instead of 0. 2006-11-08 15:50:31 +01:00
Peter Oberndorfer 05368de685 dbghelp: Make dwarf2 parser only report file numbers when at least one compilation unit really has numbers. 2006-11-08 15:50:18 +01:00
Peter Oberndorfer 6d0948f7a6 dbghelp: Make dwarf2_parse_line_numbers handle missing line number section. 2006-11-08 15:49:46 +01:00
Peter Oberndorfer fd2d43f131 dbghelp: Make dwarf2 parser handle file paths relative to working dir better. 2006-11-06 13:47:35 +01:00
Eric Pouech 76e8b504c1 dbghelp: Fixed memory leak in source string handling. 2006-11-06 12:27:01 +01:00
Andrew Talbot db941dd078 dbghelp: Cast-qual warnings fix. 2006-10-30 11:26:09 +01:00
Andrew Talbot 7da1d6d1ac dbghelp: Cast-qual warnings fix. 2006-10-30 11:26:02 +01:00
David Anderson c80f5181ff dbghelp: Avoid printing too many "What the heck" messages from winedbg. 2006-10-26 13:04:52 +02:00
Andrew Talbot 4c4d4386ed dbghelp: Cast-qual warnings fix. 2006-10-19 13:35:33 +02:00
James Hawkins 1b95f60938 dbghelp: Remove redundant NULL checks before pdb_free (found by Smatch). 2006-10-06 15:20:35 +02:00
Michael Stefaniuc 85ce5117c5 Add a WINE_NO_LONG_INT define to many makefiles to ease the transition of DWORD/LONG/ULONG from long to int. 2006-09-29 16:08:30 +02:00
Eric Pouech 7c92e801aa dbghelp: Added support for a couple of compiland's children. 2006-09-26 11:53:53 +02:00
Eric Pouech baf8dfd8c8 dbghelp: Fix location computation when attribute has a constant form instead of a block form. 2006-09-26 11:53:40 +02:00
Eric Pouech 4432a1fa91 dbghelp: Change the definition of an attribute so that we can pass around the form. 2006-09-26 11:51:57 +02:00
Eric Pouech f8e06dd613 dbghelp: Move the attribute union (now nameless) into a structure called attribute. 2006-09-26 11:49:36 +02:00
Eric Pouech fa7332fd27 dbghelp: Added support for DW_OP_breg* operations in location computation. 2006-09-26 11:48:56 +02: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
Alexandre Julliard 32ab895e46 makefiles: Generate the dependencies line to avoid some code duplication. 2006-09-14 09:38:16 +02:00
Andrew Talbot 2f8c51f547 dbghelp: Cast-qual warnings fix. 2006-09-08 16:07:43 +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
Eric Pouech 5f4ac24991 dbghelp: Missing bits from previous patch about variables with constant values. 2006-08-07 15:04:16 +02:00
Eric Pouech 820acf0901 dbghelp: Properly handle variable with const value (ie without location) in dwarf code. 2006-08-03 20:17:35 +02:00
Robert Shearman 5c8b22f385 dbghelp: Implement SymGetSymFromAddr64. 2006-07-26 10:23:19 +02:00
Robert Shearman f57ddeb9db dbghelp: Don't access a negative section index in elf_map_section. 2006-07-17 14:49:05 +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
Robert Shearman 7084f14073 dbghelp: Fix the finding of PDB DS-type files. 2006-07-13 16:25:29 +02:00
Alexandre Julliard 5258e061dc make_dlls: Ignore generated import libraries from the top-level .gitignore. 2006-07-10 20:55:58 +02:00
Alexandre Julliard cc2b3b48e6 Take advantage of the recursive nature of .gitignore for Makefile entries.
Prefix other entries with '/' to make them non-recursive.
2006-07-10 20:47:54 +02:00
William Knop 289a068b4f dbghelp: Fix for non-elf build (undefined symbol: _elf_is_in_thunk_area). 2006-06-27 21:14:02 +02:00
Eric Pouech 1a5f7f5926 dbghelp: Implemented SymEnumerateModules64. 2006-06-27 11:17:54 +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 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
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 572e18ef39 dbghelp: Updated spec file. 2006-05-11 12:13:50 +02:00
Eric Pouech 645134397b dbghelp: Stub for SymGetSourceFileToken. 2006-05-08 14:48:10 +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
Alexandre Julliard ae5aacb4cc dbghelp: Don't fail to initialize if we can't load the main module as ELF. 2006-04-19 14:30:10 +02:00
Paul Vriens 0c24301394 dbghelp: Params of LPSTACKFRAME64 only has 4 elements. 2006-04-17 11:57:47 +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 12eb665402 dbghelp: MSC fixes.
- wrong cut & paste across versions of a given record type
- wrong definition for register_v2
2006-03-18 18:21:30 +01:00
Eric Pouech 7eefc9eb0d dbghelp: Support for LF_VTSHAPE in MSC.
- added preliminary support for VT (virtual table) shape
  type record
- as we don't do C++, it's just a hack to get rid of
  some errors
2006-03-18 18:21:06 +01:00
Eric Pouech e737dbec7f dbghelp: MSC forward declaration.
- create an infrastructure for handling forward usage
  of type records
- used it in some cases (pointer to yet not defined udt,
  function signature, modifiers)
2006-03-18 18:20:50 +01:00
Eric Pouech 79b47204f0 dbghelp: Type parsing refactoring.
- seperate types' table handling from a single type handling
  by adding codeview_parse_one_type function
- factored all calls for caching symt
- make type parsing helpers return the symt instead of a
  simple error status
2006-03-18 18:20:37 +01:00
Eric Pouech dadd1080ee dbghelp: Fixes for NB11 types.
- when checking debug info in NB09 or NB11 format (CodeView),
  try to load the global types section
2006-03-18 18:20:10 +01:00
Eric Pouech 9e6573315d dbghelp: MSC handling of function signature's parameters.
- now correctly parsing parameters types for a function
  signature and storing them in dbghelp internal structures
2006-03-18 18:18:18 +01:00
Eric Pouech 209e175d83 dbghelp: Cleanup MSC bitfield handling.
- no longer caching bitfield information but accessing it directly
  when needed
- removed all kludges for bitfield handling
- reused BOOL parameter to codeview_get_type for monitoring
  traces (will be used in later patches)
2006-03-18 18:17:56 +01:00
Eric Pouech 4c2cec5553 dbghelp: Fieldlist.
- now that we have offset tables to type, we can cleanly
  parse the field-lists and remove the associated kludges
- also adding internal structure for easing parameter sharing
  across functions (codeview_type_parse)
- in mscvpdb.h, also reparated the type records that are
  referenced from other type records (union codeview_type_ref)
  from type records referenced by symbols (union codeview_type)
2006-03-18 18:17:30 +01:00
Eric Pouech 633ab584c1 dbghelp: MSC types.
- enforce the type records that can be accessed by symbols (these are
  anyway the high level ones)
2006-03-18 18:17:08 +01:00
Eric Pouech 68a0ca7418 dbghelp: Types parsing.
- our engine for parsing types section now requires in entry
  an offsets table for getting directly to each type in the
  section
- (re)construct this table for PDB types
2006-03-18 18:16:50 +01:00
Eric Pouech bbf0251c78 dbghelp: CV's ssearch.
- added definitions for start_search symbol info
- silenced warnings from this symbol
2006-03-18 18:16:23 +01:00
Eric Pouech 4143ce5e0b dbghelp: Moved codeview structures and definitions from msc.c to mscvpdb.h. 2006-03-18 18:15:43 +01:00
Eric Pouech c0e0de6c4e dbghelp: Compiland and source files are not the same thing.
- in MSC debug info parsing, clearly separate a source file
  information from a compiland (including in linetab structure)
- in ELF debug info parsing, now storing compiland directly
  in symtab_elt while browsing the symtab section (we still
  create twice the compilands, once in stabs/dwarf parsing, 
  a second time in symtab parsing)
2006-03-18 18:15:14 +01:00
Eric Pouech db90e17d92 dbghelp: Live target detection.
- DBGHELP_NOLIVE env variable is tested earlier to avoid 
  some strange effects in live target detection
- in WineDbg, delete DBGHELP_NOLIVE before attaching to
  a process, because we know it must be a live target
2006-03-18 18:05:38 +01: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 e70617883b dbghelp: Implemented TI_GET_COUNT in SymGetTypeInfo for function. 2006-03-06 11:37:02 +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
Eric Pouech 0f86dd9324 dbghelp: Fix SymFindFileInPath to return files matching the requested
criteria (it was mainly doing the opposite).
2006-02-20 11:14:34 +01:00
Alexandre Julliard 133b3069bb dbghelp: Use wine_dll_enum_load_path to search the dll load path. 2006-02-17 17:38:28 +01:00
Alexandre Julliard 29aea6e1c7 Fixed a couple of function prototypes. 2006-02-17 14:08:38 +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 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
Alexandre Julliard 9daaab54c7 winedbg: Use Win32 types instead of long long. 2006-01-23 16:47:07 +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 e5d09bf374 dbghelp: SymSetContext should return FALSE when setting twice the same
frame context.
2006-01-23 16:30:25 +01:00
Eric Pouech eca3715f88 dbghelp: Live targets.
In SymInitialize, now trying to check if the hProcess is a real live
target or not. If we think it is, try to grasp ELF information from
it.
2006-01-23 16:30:03 +01:00
Eric Pouech 418591c8ea dbghelp: Started implementation of the global callback mechanism. 2006-01-23 16:29:21 +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 87ab6e6cd8 dbghelp: Correct handling for all module names. 2005-12-22 11:11:39 +01:00
Eric Pouech 099cfeaac8 dbghelp: Added a few extensions to make windbg happy. 2005-12-20 11:49:24 +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 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 a229618ef1 dbghelp: New stubs (needed for windbg startup). 2005-12-19 17:41:52 +01:00
Eric Pouech 177bf4c1a6 dbghelp: Fixed loading .so modules from a living target. 2005-12-19 17:41:43 +01:00
Eric Pouech df7be14ce2 dbghelp: Fixed missing parameters info in StackWalk64. 2005-12-19 17:41:32 +01:00
Alexandre Julliard ae964ac801 Take advantage of the __EXCEPT_PAGE_FAULT macro. 2005-12-16 17:17:57 +01:00
Eric Pouech 7b11aacbae dbghelp: Final touch on StackWalk64 so that it works. 2005-12-06 21:21:31 +01:00
Eric Pouech 1f872df26c dbghelp: Implemented StackWalk64. 2005-12-05 12:50:10 +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
Francois Gouget e186f54c4e Add IMAGEHLP_MODULEW64.
Add SymGetModuleInfoW64() and SymLoadModule64().
2005-12-02 13:00:24 +01:00
Vitaliy Margolen cb5e95c876 Stub StackWalk64. 2005-11-29 11:48:57 +01:00
Eric Pouech d10a90dca0 Added support for 'loading' virtual modules. 2005-11-29 11:47:40 +01:00
Eric Pouech 82aa9210df Implemented SymGet{Next|Prev}Line64. 2005-11-29 11:45:28 +01:00
Eric Pouech 8bd3c060ec Now correctly checking calling down to 32 bit version. 2005-11-29 11:45:16 +01:00
Eric Pouech dd3e1dc525 Implemented SymGetModuleInfo64. 2005-11-29 11:42:13 +01:00
Eric Pouech 22f9f4f0c3 Implemented SymUnloadModule64. 2005-11-29 11:35:10 +01:00
Eric Pouech 1cb1183037 Implemented SymLoadModuleEx. 2005-11-29 11:24:46 +01:00
Eric Pouech 2efa0314d9 Added stub for dbghelp.SymRegisterCallback64. 2005-11-29 10:42:49 +01:00
Ge van Geldorp 1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Eric Pouech 7a431fc826 Added stubs for DbgHelp functions: SymRegisterFunctionEntryCallback. 2005-11-28 10:40:02 +01:00
Alexandre Julliard 0ec7e1a591 Renamed all .cvsignore files to .gitignore. 2005-11-26 13:10:33 +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 f7dd869ebf Dbghelp describes the types of function arguments with a specific
symbol-type (symt) which links both to arguments' type and to function
prototype
- added this new type to dbghelp
- implemented its use in winedbg
2005-11-17 12:53:41 +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
Vincent Béron 297ef3af20 Fix typo: PSYM_ENUMSOURCEFILES_CALLBACK instead of
PSYM_ENUMSOURCFILES_CALLBACK.
2005-11-04 11:16:48 +00:00
Eric Pouech 9c1b57c3d4 Implemented SymEnumLines. 2005-11-03 09:51:26 +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
Alexandre Julliard 7e22be4d84 We are no longer generating .dbg.c files. 2005-09-29 10:35:58 +00:00
Marcus Meissner bd7ec9aca5 The last argument to MultiByteToWideChar is wide character count and
not the buffer size in bytes. Fixed all places where it was wrong.
2005-09-12 22:07:53 +00:00
Alexandre Julliard 261e376495 Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
2005-09-12 15:14:06 +00:00
Alexandre Julliard 4c34d9386c Specify 64-bit integers as double instead of long long in spec files
so that we get the correct number of arguments.
2005-09-09 15:05:01 +00:00
Mike McCormack b5bd4a101a Fix gcc 4.0 warnings. 2005-09-02 14:47:36 +00:00
Alexandre Julliard 705bc7b481 Added a couple of missing stubs for the non-ELF case. 2005-08-29 09:46:32 +00:00
Alexandre Julliard 49b7fdcfc0 Removed the broken mmap64 configure check, and moved the
_FILE_OFFSET_BITS define to wine/port.h. Made sure that all files that
need the define include it.
2005-08-03 21:25:10 +00:00
Peter Oberndorfer 68a4da07eb Added stub for SymSetParentWindow. 2005-07-29 14:42:37 +00:00
Alexandre Julliard 22fd30c0a5 We no longer have thunks in the data section. 2005-07-07 12:03:57 +00:00
Eric Pouech 809edabfbe Const correctness fixes. 2005-06-27 09:53:46 +00:00
Alexandre Julliard f84401aa17 Sort entry points in the same order as Windows. 2005-06-23 09:57:11 +00:00
Mike McCormack f55de5cf35 Fix warnings exposed by -Wmissing-declarations and -Wwrite-strings. 2005-06-09 09:46:39 +00:00
Paul Vriens 4129e6e17f Add SymLoadModule64. 2005-05-29 20:02:42 +00:00
Eric Pouech f09a26067f - fixed ReadProcessMemoryProc prototype
- made StackWalk work when dbghelp is run against a non running
  process
2005-05-23 11:43:44 +00:00
Raphael Junqueira 54acd10dfe - fixme when unexpected children found
- no more dwarf2_check_sibling errors (ie perfect parsing count) :)
- dwarf2_parse_inlined_subroutine, dwarf2_parse_variable
2005-05-23 09:50:15 +00:00
Raphael Junqueira 79804db4e2 - better traces
- handle inclusion "levels"
- better parsing of subprogram, typedef, pointer, ... entries
- arrays, enums, const_type, reference_type parsing
- checks parsing cursors errors (when sibling value available)
- more utilities functions (dwarf2_parse_attr_as_data)
2005-05-20 09:41:10 +00:00
Raphael Junqueira 34955b9578 - basic parsing of subprogram, typedef, pointer, class, struct, enum
entries
- indirect strings support
- utilities functions (parse_byte, parse_u2, ...)
2005-05-19 11:14:39 +00:00
Alexandre Julliard 8ee01679dc Fixed a couple of warnings. 2005-05-18 13:27:24 +00:00
Raphael Junqueira 86cdb432c5 - add some Dwarf2 enums
- abbrev entries parser (with attributes)
- debug info parser skeleton (see big tag swith in dwarf2_parse).
2005-05-18 09:46:12 +00:00
Raphael Junqueira 92000a91da Fix open_pdb_file (used for locate/open pdbs):
- pdb_match heuristic now only stop when "first file" exists
- SymFindFileInPath now fill output buffer with a valid value on
  success.
2005-05-18 09:42:17 +00:00
Raphael Junqueira 83f001b6c7 Beginning of dbghelp dwarf2 support:
- add elf_module entry for dwarf2_parse
- stubbed dwarf2_parse in new dwarf.c file
2005-05-17 14:32:55 +00:00
Alexandre Julliard e4412a618c Removed the special casing of kernel32 and ntdll for the TEB
definition in winternl.h.
2005-05-16 17:52:10 +00:00
Alexandre Julliard 827a69f8ca Avoid referencing stackframe.h from outside kernel32. 2005-05-16 14:20:16 +00:00
Hans Leidekker 56058ddb15 Silence some unknown stab type messages. 2005-05-16 08:47:55 +00:00
Alexandre Julliard d876893fc1 Store the 16-bit stack pointer in the WOW32Reserved TEB field. 2005-05-14 12:16:46 +00:00
Alexandre Julliard 34fa35dc99 Added rules for building import libraries in the individual dll
makefiles, and added support for building a .def.a static import
library too.
2005-05-09 14:42:30 +00:00
Alexandre Julliard d62356aa1e Added rules to build import libraries in the individual dll makefiles.
Generate import libraries with the right name right away instead of
using an intermediate .spec.def file.
2005-05-07 12:39:52 +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
Emmanuel Maillard 034ebcc19e Fix compile on non-ELF host. 2005-05-05 09:50:13 +00:00
Peter Berg Larsen 972a949552 Eliminate strncpy and correct some NameLen bugs. 2005-04-18 15:34:10 +00:00
Peter Berg Larsen 716bf4d6fb Elimination of lstrcpyn, and corrected a potential pointer bug. 2005-04-18 15:33:31 +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 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
Francois Gouget 93416cdaf7 Assorted spelling fixes. 2005-03-23 13:15:18 +00:00
Filip Navara b4e5e049ba Initialize the "toc" field in the pdb_lookup structure in order to
prevent pdb_free_lookup from trying to delete invalid pointers.
2005-03-15 19:32:14 +00:00
Eric Pouech f332412092 When initializing a live target, ask to load module file names, not
module names (spotted by Robert Reif).
2005-03-07 12:24:02 +00:00
Eric Pouech 642402d581 Added support for minidump (read & write). 2005-03-07 11:03:21 +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
Mike Hearn 7acd363973 Change an ERR to a WARN. 2005-02-09 22:21:58 +00:00
Alexandre Julliard 2dd40110a0 Silence a noisy FIXME. 2005-01-31 16:24:57 +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 e4a44b3545 Various fixes for C++ class parsing (nesting, templates) (from test
cases provided by Michael Lin).
2005-01-31 11:29:09 +00:00
Eric Pouech cf1d00bb08 Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
2005-01-09 16:42:53 +00:00
Michael Stefaniuc 15a308a9d7 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2005-01-03 14:56:42 +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
Francois Gouget 6fb1a20020 Assorted spelling fixes. 2004-12-20 19:27:06 +00:00
James Hawkins 74d32620eb Remove c++-style comment. 2004-12-06 11:41:32 +00:00
Eric Pouech 25cdb4c236 Fixed regressions introduced when moving addresses as 64bit values. 2004-11-22 18:30:10 +00:00
Eric Pouech 9995c7d368 - moved into new mscvpdb.h (out of msc.c) all types and defines needed
to parse debug files generated by MS tools
- moved into coff.c (and out of msc.c) the COFF handling
- cleaned lots of types (add consistency across structs)
- versioning of some defines and types (to follow MS tools evolution)
- enhanced V2 of symbols parsing (some more types recognized, support
  of imported .pdb files)
- added support for newest .pdb format
2004-11-21 15:51:47 +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
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
Francois Gouget 9c3246803b Fix the declaration of SymEnumSymbols() in dbghelp.spec.
Use PVOID instead of void* for consistency.
Update the dbghelp section in win32.api.
2004-10-21 19:57:56 +00:00
Vincent Béron 4eeae1adb3 Fix some types problems. 2004-10-18 22:39:21 +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
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
Jon Griffiths 5ae461aa69 Vectors need all 32 bits to handle _really_ large apps. 2004-10-07 17:33:43 +00:00
Francois Gouget 67aa858a31 Assorted spelling fixes. 2004-10-05 18:15:29 +00:00
Wolfgang Schwotzer 0d4f4d9051 MakeSureDirectoryPathExists: Recursively create path up to last '\\'. 2004-10-05 02:05:28 +00:00
Robert Shearman 1abb0a57c6 Add support for .gnu_debuglink. 2004-10-04 20:41: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 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
Robert Shearman ef8ba283b8 Rewrite a section of code so that it doesn't use exit(0) when out of
memory.
2004-10-04 19:02:36 +00:00
Robert Shearman ffbed1ff9c Print out a slightly more informative message if an ELF module fails
to load.
2004-10-04 18:59:10 +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
Robert Shearman e4e7186b25 Fix debugger for flat PC and non-flat frame. 2004-09-23 04:27:46 +00:00
Robert Shearman 6f17eee7a9 Implement ImageDirectoryEntryToData by forwarding it to the ntdll
implementation of the function.
2004-09-10 19:34:29 +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
Alexandre Julliard 25e2a320a7 Don't define BEGIN_INTERFACE in unknwn.h. 2004-08-22 21:38:46 +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
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 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
Dmitry Timoshkov c4a5c7359b Fix elf_read_wine_loader_dbg_info() for the !__ELF__ case. 2004-05-24 19:10:04 +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
Francois Gouget 66834324b1 Assorted spelling fixes.
Remove wszRegSeparator from devenum_private.h since it's neither
exported by createdevenum.c nor used by anyone else.
2004-04-20 04:03:42 +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
Emmanuel Maillard d43e1b24ad Fixed a compile error on non-i386. 2004-04-17 00:22:34 +00:00
Kevin Koltzau 5b338a87d8 Fix a few compile errors when cross compiling. 2004-04-15 04:58:55 +00:00
Gerald Pfeifer cd69b118c2 Cast third parameter of elf_search_and_load_file() to proper type. 2004-04-07 19:06:10 +00:00
Gerald Pfeifer 03a4f56824 Avoid compiler warning in vector_position(). 2004-04-06 20:13:37 +00:00
Eric Pouech 800864a050 First shot at implementing dbghelp. 2004-04-05 22:21:27 +00:00