Commit Graph

835 Commits

Author SHA1 Message Date
Alexandre Julliard 75792a3e69 dbghelp: Grow all arrays by doubling the size. 2009-07-10 14:46:55 +02:00
Eric Pouech 9c54158958 dbghelp: Added reference for MSVC 8.
A+
2009-06-29 13:14:04 +02:00
Eric Pouech 7fbcd11db8 dbghelp: When the CU is compiled with GCC, deal with some GCC extensions. 2009-06-29 13:13:50 +02:00
Eric Pouech 4008943502 dbghelp: Simplify the resort operation (module address table) by using binary insertion instead of resorting the whole array. 2009-06-26 12:01:07 +02:00
Eric Pouech 609ec7b11d dbghelp: when (re)building the per module symbol table (lookup by address), no longer iterate over the hash table.
Directly add to the table when adding a new symbol.
2009-06-26 12:01:00 +02:00
Eric Pouech dde39fddc5 dbghelp: Factorize symbol insertion into module by address table. 2009-06-26 12:00:38 +02:00
Eric Pouech 607a07f42a dbghelp: When loading ELF public information, handle the cases when we don't get an address. 2009-06-26 12:00:25 +02:00
Alexandre Julliard a5231a60a1 dbghelp: Fix detection of special Wine segments. 2009-06-25 11:45:24 +02:00
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
Alexandre Julliard bb2d643f49 dbghelp: Try to avoid crashing on unrecognized attributes. 2009-05-29 12:30:28 +02:00
Dmitry Timoshkov d82df8f9b0 dbghelp: All parameters of MiniDumpReadDumpStream() except base are optional. 2009-05-21 16:17:51 +02:00
Ken Thomases 6903238948 dbghelp: Don't check version of Mach-O dyld_all_image_infos structure.
The structure has changed repeatedly, but always in a backward compatible way.
The version check was only hampering us.
2009-05-04 12:52:01 +02:00
Alexandre Julliard 329c22f323 dbghelp: Add a few more 64-bit symbol functions. 2009-04-23 12:41:29 +02:00
Ken Thomases 905ab99815 dbghelp/stabs: For Mach-O, line offset is relative to original function address. 2009-04-07 11:21:40 +02:00
Ken Thomases 31fd8dd763 dbghelp: Include Mach-O modules in minidumps. 2009-03-25 12:17:51 +01:00
Ken Thomases 3a96219d57 dbghelp/stabs: For Mach-O, line numbers use absolute address, not offset.
So, compute the offset by subtracting the function address.
2009-03-25 12:17:42 +01:00
Ken Thomases feedbb1630 dbghelp: Recognize .dylib files as Mach-O modules. 2009-03-25 12:17:36 +01:00
Ken Thomases d7466e0c4e dbghelp: Add support for debugging Mach-O modules. 2009-03-25 12:17:29 +01:00
Ken Thomases df0f32bbd9 dbghelp: Increase file read buffer size for calc_crc32. 2009-03-12 14:29:14 +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 985f0ea18f dbghelp/stabs: Track line numbers pending for an upcoming function.
On Darwin, line numbers usually precede the associated function.
2009-03-12 13:09:56 +01:00
Ken Thomases 65d929079c dbghelp/stabs: Allow pending list to include line numbers as well as variables.
On Darwin, line numbers usually precede the associated function.
2009-03-12 13:09:56 +01:00
Ken Thomases a1ac32822a dbghelp/stabs: Extract growing of pending_block's buffer to pending_make_room(). 2009-03-12 13:09:56 +01:00
Ken Thomases 615fff293a dbghelp: Teach stabs_parse about other kinds of Mach-O symbol definitions. 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
Ken Thomases 82a3f8fcb2 dbghelp/stabs: Decode the Stabs type more carefully. 2009-03-12 13:09:55 +01:00
Ken Thomases 1ecd634c4b dbghelp/stabs: Ignore the N_OSO type used on Darwin. 2009-03-12 13:09:55 +01:00
Ken Thomases 1f4ddbaed9 dbghelp/stabs: Translate additional register codes. 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
Alexandre Julliard 020b3b5bdc dbghelp: Define _IMAGEHLP_SOURCE_. 2009-03-09 13:26:57 +01:00
Austin English 28fe3f76c0 dbghelp: Change pointer cast to DWORD_PTR. 2009-02-23 13:14:18 +01:00
Alexandre Julliard 9a4e519aeb dbghelp: Avoid size_t in a trace. 2009-02-12 17:53:35 +01:00
Eric Pouech c83039bd6e dbghelp: Fix bad call to free() instead of pdb_free(). 2009-02-11 12:29:37 +01:00
Alexandre Julliard 0f3445d6db dbghelp: Fix handling of empty file regexp (Coverity). 2009-02-09 14:37:22 +01:00
Andrew Talbot 5b60142f94 dbghelp: Remove unused function. 2009-02-05 13:13:58 +01:00
Alexandre Julliard 601a1364b9 dbghelp: Moved SymEnumLines to symbol.c to reuse the regex support. 2009-02-04 13:13:08 +01:00
Alexandre Julliard 768954b245 dbghelp: Fall back to string comparison if regex support is missing. 2009-02-04 13:02:08 +01:00
Alexandre Julliard e9610f674c dbghelp: Allocate enough memory initially for regexps instead of growing the buffer. 2009-02-04 13:00:31 +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
Marcus Meissner 54e8ecf1b0 dbghelp: Check for wImageName being NULL (Coverity). 2009-02-02 15:44:39 +01:00
Michael Stefaniuc 3c3a9b5081 dbghelp: Remove superfluous pointer casts. 2009-01-19 13:36:25 +01:00
Andrew Talbot 4c92ba2270 dbghelp: Declare some functions static. 2009-01-03 15:35:29 +01:00
Alexandre Julliard 6a548b1e9d ntdll: Fix the various structures returned by NtQuerySystemInformation for 64-bit. 2009-01-03 14:55:32 +01:00
Alexandre Julliard fd2cb87c87 dbghelp: Make a function static. 2008-12-04 12:47:27 +01:00
Francois Gouget 9c5e97aa71 Assorted spelling fixes. 2008-11-24 14:25:10 +01:00
Kai Blin 4dedbd404c dbghelp: Upgrade FIXME to ERR. 2008-11-24 14:18:41 +01:00
Ricardo Filipe b5fcabb52c dbghelp: Fixed dead store (llvm/clang). 2008-11-18 13:05:21 +01:00
Eric Pouech 9bac505f2a dbghelp: Properly add CPU info to minidump. 2008-11-11 14:03:01 +01:00
Eric Pouech fe734de8d9 dbghelp: Fix all forward declaration cases for UDT. 2008-11-10 11:59:21 +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
Alexandre Julliard 7f327237bf Convert remaining source files to utf-8. 2008-10-18 19:23:08 +02:00
Eric Pouech 9bc74e3ab6 dbghelp: Add support for the newest line number information in pdb files. 2008-10-01 09:51:51 -05:00
Eric Pouech 3dc37cbf94 dbghelp: Rewrote the linetab access so that we don't need to allocate intermediate information. 2008-10-01 09:51:44 -05:00
Eric Pouech 864a60d5ba dbghelp: Added support for real80 (aka long double) in inner codeview types. 2008-10-01 09:50:35 -05:00
Eric Pouech 1a1be65e8e dbghelp: Now fully reading the leafs as variant for constants.
Also added missing creation for V3 constants.
2008-10-01 09:50:28 -05:00
Eric Pouech 81df3de0fc dbghelp,winedump: Added support for symbol symbol. 2008-10-01 09:50:02 -05:00
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
Eric Pouech 7abf97ca47 dbghelp: Added stub for SymSetScopeFromAddr. 2008-10-01 09:48:06 -05:00
Eric Pouech 871dbfa88b dbghelp: Added the latest stubs. 2008-10-01 09:47:55 -05:00
Eric Pouech 49a44342fa dbghelp: Added stubs for add symbol functions. 2008-10-01 09:47:41 -05:00
Andrew Talbot c9563e10fc dbghelp: Sign-compare warnings fix. 2008-09-25 11:28:58 +02:00
Andrew Talbot 34ac3f15dd dbghelp: Sign-compare warnings fix. 2008-09-25 11:28:52 +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 5ad756fb3c dbghelp: Use the correct size for global variable when searching for a symbol. 2008-09-08 12:47:20 +02:00
Eric Pouech 418a001e00 dbghelp: Correctly setup the Unix regular expression for matching file names in SymEnumLines.
Plug a potential memory leak as well.
2008-09-08 12:47:20 +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 07baf69080 dbghelp: SymFindFileInPath doesn't check for the parameters passed when looking in a directory, whatever the dbghelp's options. 2008-09-04 13:47:26 +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
Eric Pouech f3c071660d winedump, dbghelp: Correctly name the age field in PDB headers. 2008-09-02 11:57:04 +02:00
Eric Pouech 8b9c05a9ca dbghelp: Added the definitions for Dwarf3 specifications. 2008-09-02 11:56:53 +02:00
Alexandre Julliard 97429b32f8 dbghelp: Always initialize section pointer in ImageDirectoryEntryToDataEx. 2008-07-18 11:16:02 +02:00
Andrew Talbot 51b3b4a481 dbghelp: Use dbgstr_a() in case pointer is NULL. 2008-06-23 12:51:20 +02:00
Jon Griffiths c683753185 dbghelp: Implement SymEnumerateSymbols64. 2008-06-21 11:13:37 +02:00
Eric Pouech 1f6974c124 dbghelp: Fix for SymGetModuleInfo(). 2008-05-26 19:45:55 +02:00
Eric Pouech 1a34d70354 dbghelp: Don't crash when parsing the forward declaration of a function. 2008-05-26 17:59:39 +02:00
Eric Pouech fd20b1be8a dbghelp: Protect dwarf parsing against NULL function names. 2008-05-19 13:35:42 +02:00
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
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 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