Commit Graph

501 Commits

Author SHA1 Message Date
Andrew Talbot dbe65d03e2 dbghelp: Include port.h for possible alternative to strtoull(). 2008-05-05 12:52:01 +02:00
Eric Pouech 99c27e7da4 dbghelp: Some cleanup in dwarf include files. 2008-05-01 11:13:16 +02:00
Eric Pouech 3bc7657616 dbghelp: Revert commit ae1791b0b8 and correctly fix what this patch was trying to do. 2008-05-01 11:13:07 +02:00
Eric Pouech 5ccf6a3394 dbghelp: Prevent debug overflow of internal buffer while tracing. 2008-05-01 11:13:01 +02:00
Erik de Castro Lopo ab2424710f dbghelp: Fix pointer cast. 2008-04-25 11:37:50 +02:00
Eric Pouech d2fa765087 dbghelp: Fix invalid pointer dereference. 2008-04-14 12:40:22 +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
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