Commit Graph

495 Commits

Author SHA1 Message Date
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
Andrew Talbot ae1791b0b8 dbghelp: Fix type mismatch in comparison. 2008-03-31 12:51:11 +02:00
Austin English 06d429d6b6 Spelling fixes. 2008-03-27 20:48:19 +01:00
Rob Shearman 48000893f9 makefiles: Simplify the use of the IMPORTLIB variable in the DLL makefiles.
Only specify the root to keep platform-specifics out of the individual 
DLL makefiles.
2008-03-04 20:55:01 +01:00
Andrew Talbot 53e9e24aa2 dbghelp: Assign to struct instead of using memcpy. 2008-03-01 12:02:13 +01:00
Rob Shearman 5dd2f1efa8 Include config.h and wine/port.h in files that use snprintf. 2008-02-29 12:39:28 +01:00
Rob Shearman 97a9ca3f4a dbghelp: Define NONAMELESSUNION in dwarf.c and type.c as they access VARIANT fields directly. 2008-02-28 10:50:57 +01:00
Rob Shearman f21b91c0a2 dbghelp: Fix read beyond end of field in module_get_debug. 2008-02-21 20:16:04 +01: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
Andrew Talbot 6733c6bad0 dbghelp: Assign to struct instead of using memcpy. 2008-02-15 11:09:34 +01:00
Rob Shearman f48941a2a8 dbghelp: Fix a typo in SymLoadModuleExW that caused the wrong number of characters to be passed to lstrcpynW. 2008-02-15 11:03:42 +01:00
Eric Pouech 4823663957 dbghelp: Fix erroneous access to dwarf symbol cache.
(Spotted by Dan Kegel with valgrind).
2008-02-12 22:40:46 +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 ee1a9af0ce dbghelp: When sending back information about a global symbol, only demangle the class & field/method name. 2008-02-07 11:59:52 +01:00
Eric Pouech 43afc9178b dbghelp: Attempt to cache some basic symbol types for easier and faster code. 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 752a260402 dbghelp: Added basic support for base class information.
As we don't support C++ for now, we just return FALSE for all cases.
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
Eric Pouech 7b81ea47c6 dbghelp: Store the PE version information in module block. 2008-02-04 12:46:12 +01:00
Eric Pouech 8e45b07483 dbghelp: Removed double assignment of checksum. 2008-02-04 12:45:44 +01:00
Eric Pouech 04c0ffdc47 dbghelp: Fixed the suspend count when creating a minidump in the middle of an exception. 2008-02-04 12:45:37 +01:00
Eric Pouech ecdbae7ceb dbghelp: Return the size of each directory instead of passing a pointer to it. 2008-02-04 12:45:27 +01:00
Eric van Beurden cb9596484d dbghelp: Prevent huge minidumps by ensuring the memory range is clamped. 2008-01-18 12:39:13 +01:00
Eric van Beurden 692998292c dbghelp: Fix file searching to search only listed directories instead of the whole HD. 2008-01-18 12:25:20 +01:00
Eric van Beurden ebc35e688c dbghelp: Some minidump corrections so that windbg can read our minidump files. 2008-01-18 12:25:05 +01:00
Eric van Beurden e254a1d929 dbghelp: Wrap TRACE strings using the debugstr functions and update some type casting. 2008-01-18 12:18:20 +01:00
Eric van Beurden a5a35ec211 dbghelp: Return TRUE in SymInitializeW if process is already initialized and add an ERR to SymCleanup. 2008-01-18 12:16:23 +01:00
Francois Gouget 44b52b128c Assorted spelling fixes. 2008-01-16 12:48:29 +01:00
Eric Pouech b32cfb18cd dbghelp: In Minidump, change a couple of internal names for consistency. 2008-01-14 13:36:42 +01:00
Eric Pouech 2af9736fbb dbghelp: Silence superfluous message (spotted by Robert Reif). 2008-01-14 13:36:38 +01:00
Andrey Turkin 9e2c76c6d4 dbghelp: Implement ImageDirectoryEntryToDataEx. 2008-01-11 13:43:44 +01:00
Andrew Talbot 159672d01c dbghelp: Remove unneeded casts. 2008-01-02 12:38:41 +01:00
Andrey Turkin a38cd7ac01 dbghelp: Treat const addresses as const unsigned.
This will prevent winedbg from spamming about __wine_dbch__default.
2007-12-26 14:02:22 +01:00
Andrey Turkin 33df0a7605 dbghelp: Adjust minidump streams ordering and sizing.
To more closely match native format; this is required for windbg.
2007-12-23 13:55:22 +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
Vitaliy Margolen dfe21d0ef5 dbghelp: Fix detection of ELF libs by their name. 2007-10-29 13:58:35 +01:00
Andrey Turkin 4c8e88df7e dbghelp: Avoid crashing on files with bogus export table. 2007-10-10 11:18:26 +02:00
Francois Gouget a399e3bcc4 dbghelp: Fix the PENUMLOADED_MODULES_CALLBACK() prototype. 2007-09-18 11:21:21 +02:00
Francois Gouget 9d2f48dc0f dbghelp: Better match the PSDK types, especially with regards to constness.
Also add a number of missing prototypes, especially 64bit or Unicode
versions of existing prototypes, and the related structures.  Update
win32.api to fix the winapi_check warnings.
2007-08-03 12:43:40 +02:00
Andrew Talbot f8198e6688 dbghelp: Cast-qual warnings fix. 2007-07-20 11:46:04 +02:00
Michael Stefaniuc f59c8a688f dbghelp: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:40 +02:00
Francois Gouget 96c337f0a1 Assorted spelling fixes. 2007-06-07 19:24:32 +02:00
Peter Oberndorfer b19fa1d282 dbghelp: Minor cleanup. 2007-05-17 12:44:50 +02: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 a2968c8fab dbghelp: Speed up pool_alloc. Patch by Eric Pouech. 2007-05-15 20:19:36 +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 dcb298b468 dbghelp: Exclude unused headers. 2007-05-01 11:42:24 +02:00
Andrey Turkin 234babeaf0 dbghelp: Zero-terminate module name in minidump. 2007-04-30 13:33:40 +02:00
Michael Stefaniuc 5f62da109e janitorial: Pass HEAP_ZERO_MEMORY as flag to HeapAlloc() instead of zeroing out the allocated memory in a later call. 2007-04-25 12:26:07 +02:00
Alexandre Julliard 9583c1137b dbghelp: Don't print garbage chars in ERR message. 2007-04-23 15:11:58 +02:00
Andrew Talbot a224fdb14e dbghelp: Constify some variables. 2007-04-20 13:04:11 +02:00
Andrew Talbot 645d76f889 dbghelp: Constify some variables. 2007-04-19 11:56:30 +02:00
Andrew Talbot 099bb87feb dbghelp: Constify some variables. 2007-04-18 13:00:57 +02:00
Andrew Talbot 6a23efdaa2 dbghelp: Replace inline static with static inline. 2007-03-21 16:02:57 +01:00
Alexandre Julliard b677e81d8f dbghelp: Avoid some warnings on Solaris. 2007-03-17 20:05:34 +01:00
Peter Oberndorfer debcf7fa32 dbghelp: Use elf load_offset passed to dwarf2_parse to relocate addresses.
This is needed, because symbol addresses in dwarf2 debug info are already relocated.
2007-03-16 11:35:00 +01:00
Peter Oberndorfer 25203bd87e dbghelp: Fix up load_offset to work in case the load offset is different for real binary and debug link file. 2007-03-16 11:34:47 +01:00
Peter Oberndorfer 7bbb212050 dbghelp: Initialize the elf_section_map in case of failures in elf_find_section.
Make sidx signed so sidx < 0 comparisons work.
(most of the patch written by Eric Pouech)
2007-03-16 11:34:33 +01:00
Eric Pouech f1436139fc dbghelp: Rewrote SymEnumerateModules with Unicode basis, and implemented SymEnumerateModulesW64. 2007-03-14 22:43:58 +01: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 f2cfb374a4 dbghelp: Get rid of module_name in all traces (using Unicode flavor). 2007-03-13 21:02:42 +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 59f93f64b7 dbghelp: Rewrote module_is_elf_container_loaded so that it no longer
uses the stored ModuleName (that the dbghelp's caller can override) but rather a
combination of base address and filename for the module.
2007-03-13 20:54:21 +01:00
Eric Pouech a6a57c934c dbghelp: Added helper to get the basename + extension from full filename. 2007-03-13 20:52:58 +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 ccf0be8e57 dbghelp: Implemented SymEnumTypesW. 2007-03-05 12:15:16 +01:00
Eric Pouech e161dd92ee dbghelp: Handle the .gnu_debuglink files with the newly added alternate mechanism. 2007-02-26 14:39:52 +01:00
Eric Pouech fc66bb37f4 dbghelp: Allow to add an alternate file_map for an ELF file (where to look for its debug information). 2007-02-26 14:39:38 +01:00
Eric Pouech 62b57f9e21 dbghelp: Rewrote the ELF section mapper for better data encapsulation. 2007-02-26 14:39:16 +01:00
Eric Pouech 8d3167cc9a dbghelp: Merge the A/W of elf_map_file into a single one. 2007-02-22 12:34:09 +01:00
Eric Pouech 0c1e33bb06 dbghelp: Now load the .gnu_debuglink file using Unicode search paths. 2007-02-22 12:33:37 +01:00
Eric Pouech 4aab161297 dbghelp: Added helper to map a Unicode file. 2007-02-22 12:33:14 +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 89bc65695f dbghelp: Now storing module internal info for minidumps in Unicode. 2007-02-22 12:28:59 +01:00
Eric Pouech c0fa60f547 dbghelp: A few fixes related to Unicode translation. 2007-02-22 12:27:39 +01:00
Eric Pouech 1690cf1815 dbghelp: Moved the internals for registered callback to Unicode. 2007-02-22 12:27:16 +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 2f0ed90c4e dbghelp: Implemented SymFindFileInPathW. 2007-02-22 12:26:16 +01:00
Eric Pouech 9e1f9ec19e dbghelp: Implemented SearchTreeForFileW. 2007-02-22 12:22:26 +01:00
Eric Pouech c0be0032de dbghelp: Implemented EnumDirTreeW. 2007-02-22 12:22:05 +01:00
Eric Pouech 8b861202ba dbghelp: Implemented SymMatchFileNameW. 2007-02-22 12:21:40 +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 bcc1913354 dbghelp: Implemented FindExecutableImage[W]. 2007-02-22 11:39:52 +01:00
Eric Pouech 43dffcd05d dbghelp: Now storing module information in Unicode form. 2007-02-22 11:39:08 +01:00
Eric Pouech 6efc061992 dbghelp: .gnu_link support: rewrote helper functions for better later unicodification. 2007-02-22 11:35:21 +01:00
Eric Pouech c75fb89a64 dbghelp: Prepare module loading functions to be switched to Unicode module storage. 2007-02-22 11:34:20 +01:00
Eric Pouech 50de2e2e4a dbghelp: Make the module info functions ready for the Unicode move. 2007-02-22 11:33:06 +01:00
Eric Pouech fcd3972fa8 dbghelp: Rewrote the loaded modules enumeration so that Unicode version is the core. 2007-02-22 11:32:05 +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
Rob Shearman 272d7ab46a dbghelp: ImageName is usually blank, so print LoadedImageName in elf_load_debug_info_map. 2007-02-21 19:49:43 +01:00
Eric Pouech fa9be99568 dbghelp: MiniDumpWriteDump called from exception handler.
- MiniDumpWriteDump was unable to provide stack information for the current
  thread, hence did produce unusable minidump when a programs generates the
  minidump from its own exception handler.
- We now support this if the current thread calls MiniDumpWriteDump from an
  exception handler and provides the exception information.
2007-02-20 20:31:01 +01:00
Marcus Meissner e37ff84eff dbghelp: Return when not finding the name. 2007-02-19 12:37:37 +01:00
Rob Shearman 3f8215d214 dbghelp: nread can be NULL for read_mem and read_mem64. 2007-02-15 19:15:35 +01:00
Dmitry Timoshkov 736743dd57 dbghelp: Turn a FIXME to a WARN in order to avoid mangling the output. 2007-02-05 12:30:00 +01:00
Francois Gouget e10222ced7 dbghelp: Fix the spec file to better match the SymGetSymFromAddr64() prototype.
This fixes a winapi_check warning.
2007-01-25 11:05:24 +01:00
Frank Richter 867ebe4da0 dbghelp: Search for .gnu_debuglink file. 2007-01-17 11:40:10 +01:00
Eric Pouech 2e34ea4e01 dbghelp: Removed unneeded code from rewrite of .gnu_link handling. 2007-01-15 13:00:17 +01:00
Frank Richter afc2df8705 dbghelp: Split gnu_debuglink handling into own function. 2007-01-12 11:24:06 +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 1b158dd38d dbghelp: Corrected the map/unmap operations for ELF sections.
Now correctly free the mapped areas when no longer used.
2007-01-06 11:40:44 +01:00
Eric Pouech 883732281e dbghelp: Implemented 64 bit versions of EnumerateLoadedModules. 2007-01-04 11:12:13 +01:00
Andrew Talbot 3af121230b dbghelp: Qualify use of WINE_DEFAULT_DEBUG_CHANNEL. 2007-01-02 13:21:15 +01:00
Dmitry Timoshkov e7d620081f dbghelp: Make some data const. 2006-12-14 20:11:07 +01:00
Eric Pouech 9a41a4e984 dbghelp: Sparse array speed up. 2006-12-11 12:15:34 +01:00
Alexandre Julliard 5feef7e329 dbghelp: Avoid a printf format warning. 2006-12-08 11:39:32 +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 08712bc3a9 dbghelp: Simplify the way we find the debug header. 2006-12-06 11:36:59 +01:00
Thomas Fitzsimmons 4b30ece829 dbghelp: Recognize DT_GNU_HASH. 2006-12-05 11:49:15 +01:00
Eric Pouech 16db2566c6 dbghelp: Fixed value stored for register relative information
(regression spotted by Peter Oberndorfer).
2006-12-04 14:02:42 +01:00
Eric Pouech 753055f93f dbghelp: Now that symbol's value computation depend on instruction
pointer value, be sure to always store it (spotted by Peter
Oberndorfer).
2006-12-04 14:02:18 +01:00
Pierre d'Herbemont c20afad608 dbghelp: Fix elf_load_module params on non elf system to reflect last change to its definition. 2006-12-04 12:19:22 +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 3669415dd5 dbghelp: Silence typedefs children in sub program block. 2006-11-27 18:10:24 +01:00
Eric Pouech 0dd7c44669 dbghelp: Removed the alpha status FIXME for the dwarf code. 2006-11-27 17:59:18 +01:00
Eric Pouech 5b61db4161 dbghelp: Correctly store the addresses of blocks.
They are stored internally as offsets to the start of the function
which embeds the block.
2006-11-27 17:58:44 +01:00
Eric Pouech 31f4f1b003 dbghelp: Properly handle the void type in some declarations. 2006-11-27 17:58:22 +01:00
Eric Pouech cfd9013317 dbghelp: We can now remove the default name prefix as all the non conforming cases have been eliminated.
Got rid of dwarf2_find_name which is now useless.
2006-11-27 17:58:11 +01:00
Eric Pouech 305621d5cf dbghelp: Extend support for inlined functions and handle them as generic blocks inside functions
(except for parameters which are converted into local variables).

Rewrote dwarf2_find_attribute so that it takes into account the
abstract origin information when available.

A+
2006-11-27 17:57:54 +01:00
Eric Pouech 497b2e4ea5 dbghelp: Be a bit more strict on where we do actually expect default names to be generated
(removed this feature for UDTs, structures' fields, enums, typedefs, compilands)
2006-11-27 17:57:21 +01:00
Eric Pouech 96bfe9d056 dbghelp: Add support for a label in a subprogram block. 2006-11-27 17:56:58 +01:00
Eric Pouech 8eef2de3eb dbghelp: Register numbers in OP_piece don't need to be next to each other. 2006-11-27 17:56:49 +01:00
Eric Pouech 4202a49b75 dbghelp: Add support for deref operation in location computation. 2006-11-27 17:56:36 +01:00
Eric Pouech e48a46b2b5 dbghelp: Add ability to add a SymTagCustom element to a function.
Make use of it to store the frame information for a dwarf function
(either because frame's location is a location list, or because one of
the function's variables is not properly computed at parse time).
2006-11-27 17:56:17 +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