Commit Graph

140 Commits

Author SHA1 Message Date
Eric Pouech 028956d1fe dbghelp,winedump: Added support for symbol 0x113c. 2008-10-01 09:49:54 -05:00
Eric Pouech 82d1845d85 dbghelp,winedump: Added support for 0x113d symbol. 2008-10-01 09:49:45 -05:00
Eric Pouech 1a6e018f0e dbghelp: Silence symbol 0x1139. 2008-10-01 09:49:32 -05:00
Eric Pouech cff33cedf5 winedump: Add preliminary dumping of 0x1136 and 0x1137 symbols. 2008-10-01 09:49:24 -05:00
Eric Pouech 076dcc845f dbghelp,winedump: Added support for symbol 0x1012. 2008-10-01 09:48:32 -05:00
Eric Pouech ee4aaf7fcd dbghelp,winedump: Added support for symbol 0x113a. 2008-10-01 09:48:20 -05:00
Andrew Talbot c9563e10fc dbghelp: Sign-compare warnings fix. 2008-09-25 11:28:58 +02:00
Eric Pouech 69bbefac5f dbghelp: While loading MSC debug info, don't handle public symbol at once, but delay their handling after all other symbols are loaded.
This allows to handle properly addresses between public and real
symbols. It should also increase drastically the performance of
.dbg/.pdb loading.
2008-09-08 12:47:21 +02:00
Eric Pouech 2f98c59adb dbghelp: Silence 0x112c symbol type. 2008-09-08 12:47:21 +02:00
Eric Pouech b5ffe31d22 dbghelp: Fixed offset computation for bitfields inside structures in Codeview debug information. 2008-09-08 12:47:20 +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
Eric Pouech f3c071660d winedump, dbghelp: Correctly name the age field in PDB headers. 2008-09-02 11:57:04 +02:00
Eric Pouech 5ccf6a3394 dbghelp: Prevent debug overflow of internal buffer while tracing. 2008-05-01 11:13:01 +02:00
Eric Pouech ce7656d218 dbghelp: Prevent debug overflow of internal buffer while tracing. 2008-04-07 11:27:52 +02:00
Eric Pouech f46d717818 dbghelp: Be stricter when looping in symbol tables. 2008-04-07 11:27:46 +02:00
Rob Shearman 5e1976368a dbghelp: VARIANT unions are accessed by name in msc.c so define NONAMELESSUNION. 2008-02-21 20:15:59 +01:00
Eric Pouech 62634b8025 dbghelp: Disable the S_PUB_FUNC_XXX msc symbols until we know what they do (the first guess is wrong anyway). 2008-02-07 11:59:52 +01: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
Eric Pouech aaa2862bf9 dbghelp: Added preliminary support for a strange stack variable object. 2008-02-07 11:59:52 +01:00
Eric Pouech 22f01fcc48 dbghelp: Added support for register v3 in msc. 2008-02-07 11:59:52 +01:00
Eric Pouech ac3b817d80 dbghelp: Added support for some V3 fields in structure parsing. 2008-02-07 11:59:52 +01:00
Eric Pouech b49d2b4e22 dbghelp: Added HRESULT as new basic type (and some doc about basic types ids). 2008-02-07 11:59:52 +01:00
Eric Pouech 464d51e75a dbghelp: Pass the 'details' flags to _fetch_type so that we can simplify some code around. 2008-02-07 11:59:52 +01:00
Eric Pouech 428d0e5464 dbghelp: Added missing basic types for booleans and integers. 2008-02-07 11:59:52 +01:00
Eric Pouech 8b7039d894 dbghelp: Fixed the types we want to load at first. 2008-02-05 11:13:47 +01:00
Detlef Riekenberg efb13b28df Assorted spelling fixes. 2007-12-08 19:55:39 +01:00
Andrew Talbot f2223dbe79 dbghelp: Remove unneeded casts. 2007-12-05 12:04:48 +01:00
Michael Stefaniuc f59c8a688f dbghelp: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:40 +02:00
Andrew Talbot dcb298b468 dbghelp: Exclude unused headers. 2007-05-01 11:42:24 +02:00
Alexandre Julliard 9583c1137b dbghelp: Don't print garbage chars in ERR message. 2007-04-23 15:11:58 +02:00
Andrew Talbot 645d76f889 dbghelp: Constify some variables. 2007-04-19 11:56:30 +02:00
Eric Pouech f2cfb374a4 dbghelp: Get rid of module_name in all traces (using Unicode flavor). 2007-03-13 21:02:42 +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 f4e129ab81 dbghelp: Fixes for loading circular references on function signature. 2007-03-05 12:15:31 +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 c6e8c2aab1 dbghelp: Handling of S_SALIGN symbols. 2007-01-06 11:40:45 +01:00
Eric Pouech bbef1cbd2d winedump: Removed cvinclude.h. 2007-01-06 11:40:44 +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 8e7b2e0fd7 dbghelp: Get rid of long int issues on 64bit platforms. 2006-11-30 13:26:39 +01:00
Eric Pouech 0bee33e195 mscvpdb.h: Update some definitions (constants, structures) with latest information we have. 2006-11-30 12:55:10 +01:00
Eric Pouech cc65d21f82 dbghelp: Moved mscvpdb.h file to include/wine to allow sharing of the definitions with winedump. 2006-11-30 12:54:54 +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 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 1a723f237c dbghelp: Store compiland's address in internal structures. 2006-11-27 17:49:50 +01:00
James Hawkins 1b95f60938 dbghelp: Remove redundant NULL checks before pdb_free (found by Smatch). 2006-10-06 15:20:35 +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
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
Michael Stefaniuc fee72b607a Yet another round of redundant NULL checks before HeapFree. 2006-06-13 11:40:23 +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 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 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 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 be849decf6 dbghelp: First stab at supporting calling convention in function signature. 2005-12-19 18:22:54 +01:00
Alexandre Julliard ae964ac801 Take advantage of the __EXCEPT_PAGE_FAULT macro. 2005-12-16 17:17:57 +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
Mike McCormack b5bd4a101a Fix gcc 4.0 warnings. 2005-09-02 14:47:36 +00:00
Alexandre Julliard 8ee01679dc Fixed a couple of warnings. 2005-05-18 13:27:24 +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
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
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
Mike Hearn 7acd363973 Change an ERR to a WARN. 2005-02-09 22:21:58 +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 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
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 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