83 Commits

Author SHA1 Message Date
Eric Pouech
b37996305d dbghelp: Improve speed of our hashtable implementation by remembering the last element added to every bucket. 2009-06-15 13:42:28 +02:00
Ken Thomases
d7466e0c4e dbghelp: Add support for debugging Mach-O modules. 2009-03-25 12:17:29 +01:00
Ken Thomases
637827a2d0 dbghelp: Extract calc_crc32 function into a separate file. 2009-03-12 14:29:03 +01:00
Ken Thomases
b8f6a68d6f dbghelp: Rename some things to be less ELF-centric. 2009-03-12 13:09:56 +01:00
Ken Thomases
3db11b98b7 dbghelp: Let stabs_parse call back for real (non-debug) symbol definitions. 2009-03-12 13:09:55 +01:00
Alexandre Julliard
d2682f57f8 dbghelp: The main executable is now always named "wine". 2009-03-10 18:22:43 +01:00
Andrew Talbot
5b60142f94 dbghelp: Remove unused function. 2009-02-05 13:13:58 +01:00
Alexandre Julliard
ae7490d362 dbghelp: Fix pool allocation routines to be able to support arbitrary sizes.
Also move full arenas to a separate list to avoid searching through
them again and again.
2009-02-04 12:27:36 +01:00
Andrew Talbot
4c92ba2270 dbghelp: Declare some functions static. 2009-01-03 15:35:29 +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
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
Erik de Castro Lopo
ab2424710f dbghelp: Fix pointer cast. 2008-04-25 11:37:50 +02: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
Markus Amsler
6f8a67f018 dbghelp: Late init hash_table. 2007-05-15 20:20:07 +02:00
Markus Amsler
8bc839a816 dbghelp: Speed up vector iteration by directly using for(). 2007-05-15 20:19:53 +02:00
Markus Amsler
f94127f2ca dbghelp: Speed up vector_add by avoiding pool_realloc calls. Remove no longer needed pool_realloc. 2007-05-15 20:19:28 +02:00
Andrew Talbot
a224fdb14e dbghelp: Constify some variables. 2007-04-20 13:04:11 +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
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
Eric Pouech
ccf0be8e57 dbghelp: Implemented SymEnumTypesW. 2007-03-05 12:15:16 +01:00
Eric Pouech
3565d93ebe dbghelp: Now moving the ELF loading code to Unicode. 2007-02-22 12:32:17 +01:00
Eric Pouech
c1269392e0 dbghelp: Move elf_fetch_file_info to Unicode. 2007-02-22 12:29:53 +01:00
Eric Pouech
039d54a4bf dbghelp: Make elf_enum_modules a Unicode function. 2007-02-22 12:29:27 +01:00
Eric Pouech
180127dd94 dbghelp: Get rid of temporary module_get_type_by_nameA. 2007-02-22 12:27:00 +01:00
Eric Pouech
d707fe5ac3 dbghelp: Added module_get_type_by_name in Unicode form and keep the ANSI form for compatibility. 2007-02-22 12:21:14 +01:00
Eric Pouech
46684a9fb6 dbghelp: Moved ELF module loading interfaces to Unicode.
The core the code remains ANSI, as all the information is stored as ANSI.
2007-02-22 12:20:03 +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
33c8ffc301 dbghelp: Added helper to define the module's name. 2007-02-22 11:28:13 +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
a1a879363d dbghelp: Added a field to the hash table to store the number of elements in the hash table.
Make use of it to get rid to module_compute_num_syms.
2006-12-06 11:37:38 +01:00
Eric Pouech
4806320b48 dbghelp: In find_nearest, now return the symbol instead of its index in module->sorttable. 2006-12-06 11:37:10 +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
d812f8b42c dbghelp: Added infrastructure to compute variable location at runtime (as opposed to debug info parse time).
Use it to send the variables depending on not known frame register at parse time.
Made just a stub for the location computation function for dwarf2.
2006-11-27 17:55:17 +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
d5c4e55d36 dbghelp: Added struct location to help computing a location.
Make use of it in dwarf.c to handle correctly variable location computation.
Split code to handle both location with parse time computation
(current code) and yet to come run-time computation
2006-11-27 17:54:08 +01:00
Eric Pouech
848f8c41c0 dbghelp: Pass .debug_loc section info from the ELF loader to the dwarf parser. 2006-11-27 17:53:52 +01:00
Eric Pouech
1a723f237c dbghelp: Store compiland's address in internal structures. 2006-11-27 17:49:50 +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
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
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
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
a655b14340 dbghelp: Pass .debug_loc section information to dwarf. 2006-06-20 11:52:29 +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
ad02173d21 dbghelp: Added another basic type for storage: the sparse array. 2006-06-20 11:40:32 +02:00