Commit Graph

744 Commits

Author SHA1 Message Date
Eric Pouech 711f71639d dbghelp: Get stream indexes out of PDB files (instead of hardwired values). 2011-01-18 12:36:30 +01:00
Eric Pouech 8595f6c652 dbghelp: Add support for stream lookup by name in PDB files and use it for strings stream. 2011-01-18 12:36:21 +01:00
Alexandre Julliard cf1cd33570 dbghelp: Support pointer types of various sizes. 2011-01-13 20:09:49 +01:00
Alexandre Julliard 530e9c9b17 dbghelp: Try to load the string table from file number 4 too. 2011-01-12 10:45:49 +01:00
Eric Pouech c7c8c0dea7 dbghelp: Speed up source string creation (by using rb trees). 2011-01-10 13:03:52 +01:00
Eric Pouech cbd5811e90 dbghelp: Better support for OOM conditions when creating source file table. 2011-01-10 13:03:52 +01:00
Eric Pouech 99439e7589 dbghelp: Added preliminary extended FPO information out of PDB files. 2011-01-10 12:52:18 +01:00
Eric Pouech 5ce195ae89 dbghelp: Keep the mapping of any PDB file open until the module is unloaded. 2011-01-10 12:52:11 +01:00
Eric Pouech 0693572e4c dbghelp: Use new file/debug format framework to allow keeping pdb files opened. 2011-01-10 12:52:01 +01:00
Eric Pouech 1acbb1c0ed dbghelp: Restructure internal PDB information. 2011-01-10 12:51:39 +01:00
Gerald Pfeifer 061b50eda5 dbghelp: Also return a value in an error case in elf_map_file_read. 2011-01-03 11:54:03 +01:00
Gerald Pfeifer 8f7d06b69b dbghelp: Make ehdr_addr in elf_enum_modules_internal dependent on AT_SYSINFO_EHDR. 2010-12-29 11:59:33 +01:00
Eric Pouech 1966ba8b7f dbghelp: For targets on Linux, report the VDSO system page as a known ELF module. 2010-12-28 11:18:33 +01:00
Eric Pouech 749dafd987 dbghelp: Extend elf_map_file so that it can also handle ELF maps directly from debuggee address space. 2010-12-28 11:16:07 +01:00
Eric Pouech 737b5b95bb dbghelp: Use pread instead of read in elf_map_file. 2010-12-28 11:15:24 +01:00
Eric Pouech 655247354a dbghelp: Split elf_load_file into two functions (one for creating a file-map, another one for loading info out of a file-map). 2010-12-28 11:15:06 +01:00
Eric Pouech 8740f1dc1e dbghelp: Factorize a bit the ELF enumeration callbacks. 2010-12-28 11:14:43 +01:00
Eric Pouech cf06ef640d dbghelp: Fix ELF file computation on 64bit systems. 2010-12-27 11:47:51 +01:00
André Hentschel a4c1b34146 dbghelp: Implement arm_get_addr. 2010-10-15 11:32:44 +02:00
Eric Pouech 8d981b87f1 dbghelp: Proper support and definition for S_REGREL_V3. 2010-10-11 17:11:24 +02:00
Eric Pouech fac5abc551 dbghelp: Ensure the stab_nlist structure is usable on 64bit systems. 2010-10-11 17:11:24 +02:00
Eric Pouech 854379bbaa dbghelp: Fix some relocation errors for debug formats out of ELF files. 2010-10-11 17:11:24 +02:00
Eric Pouech 922caac23b dbghelp: Compute ELF load address using the link_map ld's address (and get correct relocation computation). 2010-10-11 17:11:24 +02:00
Eric Pouech 2662ed10c8 dbghelp: When enumerating loaded modules from r_debug structure, pass the address of the dynamic section as well. 2010-10-11 17:11:24 +02:00
Eric Pouech 2a87a89680 dbghelp: Only map an ELF file once. 2010-10-11 17:11:17 +02:00
Eric Pouech 580cab9d8b dbghelp: A couple of fixes for 64bit msvc debug info compatibility. 2010-10-11 17:08:13 +02:00
Eric Pouech b164155447 dbghelp: Added a couple of missing CodeView base types (used in 64bit compilation). 2010-10-11 17:08:13 +02:00
Eric Pouech 229d753bc9 dbghelp: Some more 64bit base address fixes. 2010-10-11 17:07:57 +02:00
Eric Pouech 1e141eee4f dbghelp: Allow loading PE module with 64bit addresses. 2010-10-11 12:54:18 +02:00
Austin English 95740b30b9 dbghelp: Fix compile on Hurd. 2010-10-08 11:56:46 +02:00
Paul Vriens 5da1ecef3a dbghelp: Fix use of GetProcessHeap. 2010-09-21 17:53:55 +02:00
André Hentschel 9a1103112e dbghelp: Add ARM support. 2010-09-20 12:58:56 +02:00
Alexandre Julliard 81b8ee863e makefiles: Add a standard header for all makefiles to replace the common variable initializations. 2010-09-19 12:36:48 +02:00
Eric Pouech 1e12e90cc9 dbghelp: Fix regression with prevented StackWalk on i386 CPU to be called with a NULL context. 2010-09-13 11:01:38 -05:00
Alexandre Julliard 352a876f91 dbghelp: Use int64 in the spec file for 64-bit integers. 2010-08-31 14:23:48 +02:00
Andrew Talbot 4e4948cfbf dbghelp: Constify some variables. 2010-08-30 15:38:56 +02:00
Andrew Talbot 9738f40e79 dbghelp: Remove unused functions. 2010-08-30 11:26:29 +02:00
Eric Pouech 63c7ea6494 dbghelp: Use virtual size (not raw/file size) when getting the size of a PE section. 2010-08-30 11:26:29 +02:00
Eric Pouech 1e0af22ad2 dbghelp: dwarf debug info: a few more fixes to dwarf parsing. 2010-08-26 12:42:15 +02:00
Austin English e92a552dca dbghelp: Add initial Sparc CPU support. 2010-08-23 13:41:17 +02:00
Jacek Caban 1a1ffe60fd dbghelp: Silence template related dwarf FIXMEs. 2010-08-16 17:28:58 +02:00
Alexandre Julliard b86d515ed6 dlls: Remove explicit imports of kernel32 and ntdll. 2010-07-21 17:38:36 +02:00
Eric Pouech 1783631f55 dbghelp: Added support for CFA save/restore operation. 2010-07-05 12:59:47 +02:00
Eric Pouech 5afe16621b dbghelp: Parse correctly DW_LNE_set_discriminator. 2010-06-28 16:58:38 +02:00
Eric Pouech b6c8b8959b dbghelp: When unwinding i386 stacks, update CONTEXT with sp/bp/ip. 2010-06-28 16:58:05 +02:00
Eric Pouech 1c037bf564 dbghelp: Correctly handle the RULE_EXPRESSION when computing CFA in dwarf debug info. 2010-06-28 12:14:13 +02:00
Eric Pouech b38cddf484 dbghelp: Set the correct word size when unwinding stacks with Dwarf debug info. 2010-06-28 12:14:04 +02:00
Eric Pouech 3ced7b8f40 dbghelp: Ensure we can try to load COFF symbols if none is found in other debug formats. 2010-06-28 11:42:28 +02:00
Eric Pouech d97e6a47e5 dbghelp: Test validity of COFF symbol table against file size (and not image size). 2010-06-28 11:42:23 +02:00
Eric Pouech 1f5ff75107 dbghelp: Fix the localization of section table while loading COFF information. 2010-06-28 11:42:18 +02:00
Paul Chitescu 61a9eef9a1 dbghelp: Provide a non-NULL number of bytes read to ReadProcessMemoryProc64 callback. 2010-06-28 11:42:02 +02:00
Francois Gouget 7649c75b40 Assorted typo and spelling fixes. 2010-06-24 10:37:05 +02:00
Eric Pouech 083eca072d dbghelp: Properly manage in dbghelp interfaces local variables and parameters that are constant. 2010-06-08 12:59:26 +02:00
Eric Pouech 99a5488a18 dbghelp: Ensure that local variables and parameter actually have a container. 2010-06-08 12:59:17 +02:00
Eric Pouech 8c7cc491ab dbghelp: In dwarf parser, properly handle array without size specified. 2010-06-08 12:59:13 +02:00
Marcus Meissner 4f2e15d053 dbghelp: Add 2 new darf defines and implement DW_OP_stack_value. 2010-06-07 15:26:12 +02:00
André Hentschel 64951f7110 dbghelp: Use the available PowerPC functions. 2010-05-28 16:22:26 +02:00
Gerald Pfeifer 72216a604d dbghelp: Remove variable basic_block which is not really used from dwarf2_parse_line_numbers. 2010-05-26 10:14:46 +02:00
Eric Pouech 516fc78a2b dbghelp: Protect PE's COFF table reading against bogus values in NTHEADER. 2010-05-10 13:43:58 +02:00
Eric Pouech e520605fa9 dbghelp: When trying to enumerate locals & parameters with SymEnumSymbols, don't return a global or public symbol when the nearest symbol of the current context isn't a function. 2010-04-08 12:28:53 +02:00
Eric Pouech 196f8f070d dbghelp: Added support for DW_CFA_GNU_args_size. 2010-04-07 13:50:35 +02:00
Eric Pouech a185435243 dbghelp: When handling a P augmentation in FDE/DIE parsing, throw away the DW_EH_indirect flag, as we don't handle the result.
It's needed as long as we don't support DW_EH_indirect while reading encoded values.
2010-04-02 10:35:21 +02:00
Eric Pouech 1b68d4e7ce dbghelp: Extend dwarf stack unwinding by reading information out of .debug_frame sections.
Implement dwarf stack unwinding for i386 CPU.
2010-04-02 10:35:02 +02:00
Eric Pouech 34ef8d2113 dbghelp: Store delta used for re-locating a module. 2010-04-02 10:34:37 +02:00
Eric Pouech 51bce9b049 dbghelp: Implement the new register methods for x86. 2010-04-02 10:34:27 +02:00
Mikhail Maroukhine 0519c4b68a dbghelp: Fix compiler warnings with flag -Wcast-qual. 2010-03-29 12:13:28 +02:00
Eric Pouech 060ccb123a dbghelp: When unwinding the stack, stop if the current address isn't in a known module. 2010-03-29 11:45:13 +02:00
Eric Pouech 0c2401369c dbghelp: Rewrite SymGetModuleBase so that it relies on 64 bit version. 2010-03-29 11:45:04 +02:00
Eric Pouech a5293895a3 dbghelp: In dwarf parsing, correctly handle the DW_OP_regx option. 2010-03-29 11:44:52 +02:00
Eric Pouech 6a6edcd1ca dbghelp: In dwarf attribute parsing, ensure that we do have a block when parsing a block. 2010-03-29 11:44:46 +02:00
Eric Pouech 036392c5d1 dbghelp: Added preliminary CFA management. 2010-03-29 11:38:17 +02:00
Eric Pouech 0eef5d6809 dbghelp: Added CFA information to dbghelp's dwarf.h. 2010-03-29 11:37:46 +02:00
Eric Pouech 1d60aa6000 dbghelp: Extend the CPU object in order to manipulate context's registers (getting context's content & register names). 2010-03-29 11:37:39 +02:00
Eric Pouech 9851ebf792 dbghelp: Keep the .debug_frame section mapped when parsing dwarf debug_info (needed for CFA management). 2010-03-29 11:37:27 +02:00
Eric Pouech e2b62c91d5 dbghelp: Created a CPU method to map dwarf register number to codeview register number. 2010-03-25 09:45:32 +01:00
Eric Pouech 403f41687e dbghelp: In dwarf parsing, correctly get the size of addresses in location lists. 2010-03-25 09:45:26 +01:00
Eric Pouech 8413810c6c dbghelp: Don't try to hardwire the dwarf's "word size", but get it properly. 2010-03-25 09:45:21 +01:00
Eric Pouech e6a08a1e15 dbghelp: Fixed a couple of portability issues to 64bit platforms. 2010-03-25 09:45:15 +01:00
Eric Pouech 51e9951a5f dbghelp: Enhanced x86_64 stack unwinding with PE's function table data. 2010-03-25 09:45:11 +01:00
Eric Pouech 4c3361e39e dbghelp: Properly bail out if get an error while reading ELF header. 2010-03-22 11:29:14 +01:00
Eric Pouech 375d158da7 dbghelp: Fix local/parameters enumeration on 64bit platforms. 2010-03-22 11:29:08 +01:00
Eric Pouech d822aaff92 dbghelp: Removed the not-useful start_data field out of dwarf2_traverse_context_t. 2010-03-22 11:27:44 +01:00
Eric Pouech bf97b03db5 dbghelp: Implemented SymFunctionTableAccess. 2010-03-22 11:27:36 +01:00
Eric Pouech 2ed8b9f6b6 dbghelp: Added helper to image_file_map to map also directory out of PE executables. 2010-03-22 11:27:32 +01:00
Eric Pouech cecb80a4e8 dbghelp: Move the mach-o information into the modfmt structure. 2010-03-19 12:23:36 +01:00
Eric Pouech fe2ae803ee dbghelp: Moved the ELF's module information into the new scheme. 2010-03-19 12:08:46 +01:00
Eric Pouech cd92e3d147 dbghelp: Move the PE debug info to the newly define scheme. 2010-03-19 12:08:37 +01:00
Eric Pouech 73f79e7fad dbghelp: Create new infrastructure to hold specific information for multiple file/debug formats in a single module, and use it to store dwarf2 stuff. 2010-03-19 12:08:27 +01:00
Eric Pouech 3e6920d7b8 dbghelp: Now that we can keep ELF sections around, don't copy the loclist section, just don't unmap it. 2010-03-19 12:08:10 +01:00
Eric Pouech 2d8c788353 dbghelp: Let dwarf_parse decide on which sections it needs to map. 2010-03-19 12:08:03 +01:00
Eric Pouech c9bac2efd2 dbghelp: Extend the image (ELF/PE) scheme to get the RVA out of a section. 2010-03-19 12:07:45 +01:00
Eric Pouech a2e65f1311 dbghelp: Keep the file map around for every PE module, so that we can access image whenever we like to. 2010-03-19 12:07:27 +01:00
Eric Pouech cbff4f063f dbghelp: Create the notion of image (PE, ELF modules) to uniformize some handlings. 2010-03-19 12:05:59 +01:00
Eric Pouech fb169502a5 dbghelp: Extend the ELF image management to PE modules so we get a rather uniform interface to image manipulation. 2010-03-19 12:04:19 +01:00
Eric Pouech 770f0d834f dbghelp: Make the ELF mapping code easier to use. 2010-03-19 12:03:57 +01:00
Eric Pouech 8c4f96d232 dbghelp: Store the file map in ELF's module specific data. 2010-03-16 13:31:05 +01:00
Eric Pouech 9d7b6b65ef dbghelp: Added helper to free module's specific data (ELF, MSC...) upon removal. 2010-03-16 13:30:46 +01:00
Eric Pouech 09a7e2d3d0 dbghelp: Added full support for DW_FORM_data8 attributes, as well as primary support for DW_FORM_block* attributes. 2010-03-16 13:30:31 +01:00
Alexandre Julliard bef5645eb1 makefiles: Remove the no longer needed explicit separators for dependencies. 2010-03-16 13:28:19 +01:00
Alexandre Julliard ff55fc9bea dbghelp: Fix a pointer cast. 2010-02-16 15:50:43 +01:00
André Hentschel c71ffcf407 dbghelp: Merge dwarf code from ntdll/signal_x86_64.c. 2010-02-09 17:13:37 +01:00
Alistair Leslie-Hughes a204f099c6 dbghelp: Add stubs for SymGetLineFromName, SymGetLineFromName64, SymGetLineFromNameW64. 2010-02-09 17:13:36 +01:00
Alistair Leslie-Hughes d02040d98a dbghelp: Add basic support for PVOID64. 2010-02-08 17:14:43 +01:00
Alexandre Julliard 58e08ebc08 dbghelp: Fix broken sw_read_mem() call in i386 stack backtrace. 2010-02-04 19:32:12 +01:00
Eric Pouech a414e782f0 dbghelp: Remove a couple of unnneeded include files. 2010-02-04 13:39:28 +01:00
Alexandre Julliard 2a07163901 dbghelp: Fix the Mac OS build. 2010-01-28 15:52:32 +01:00
Alexandre Julliard e42d1a8cc1 dbghelp: Don't require a 16-bit stack for StackWalk. 2010-01-27 18:46:06 +01:00
Eric Pouech 520fcae5d2 dbghelp: For PE modules, when no debug info is present, also try to load symbols out of COFF symbol table. 2010-01-25 12:53:03 +01:00
Eric Pouech 181de55619 dbghelp: Removed some unused fields for public symbol description. 2010-01-25 12:52:46 +01:00
André Hentschel 2f5ba0d8c0 dbghelp: Fix typo in url. 2010-01-06 09:52:48 +01:00
André Hentschel 1f168cbd6e dbghelp: Fix a typo. 2009-12-31 12:12:16 +01:00
Eric Pouech 878f287366 dbghelp: Silence a couple of FIXMEs for C++ code.
Reported by Jacek Caban.
2009-12-29 13:28:01 +01:00
Marcus Meissner c39cd4c0ce dbghelp: Initialize ret (Coverity). 2009-12-29 11:07:11 +01:00
Eric Pouech bc38d3eaac dbghelp: Add support for loading dwarf debug information out of PE images. 2009-12-24 12:15:41 +01:00
Eric Pouech ed96e740e9 dbghelp: Add a couple of helpers to struct cpu to help adding the stack to minidump. 2009-12-23 14:27:29 +01:00
Eric Pouech 54766cdac0 dbghelp: Hacked a StackWalk implementation for x86_64. 2009-12-23 14:27:29 +01:00
Eric Pouech 7230659ce9 dbghelp: Create a cpu backend to store CPU dependent code, and use it for the i386 stack implementation. 2009-12-23 14:27:29 +01:00
Eric Pouech 2d85d5c235 dbghelp: Generalize helper to get a string from an ADDRESS64. 2009-12-22 15:39:20 +01:00
Eric Pouech fdc86c1999 dbghelp: Rewrote stack_walk with 64 bit structures. 2009-12-22 15:39:01 +01:00
André Hentschel 255a1ebaad dbghelp: Implement literal dwarf opcodes. 2009-12-21 15:01:24 +01:00
Eric van Beurden fefd0cfda7 dbghelp: Fix a minidump crash by using the correct variable. 2009-12-18 12:49:46 +01:00
Huw Davies 34a961d3af dbghelp: Fix compilation on OSX. 2009-12-16 12:20:31 +01:00
Marcus Meissner 6feb525bc7 dbghelp: Check for NULL return from process_find_by_handle (Coverity). 2009-12-15 16:09:11 +01:00
Eric Pouech 9500df82f1 dbghelp: Move the core of some line related functions to 64bit interface. 2009-12-15 11:58:39 +01:00
Eric Pouech 776e75e43c dbghelp: Fix symt_find_nearest so that it searches for 64bit addresses on 64bit platforms. 2009-12-15 11:58:24 +01:00
Eric Pouech 7b83b70b06 dbghelp: Rewrite the symt* <=> index wrappers to that they work on 64bit platforms. 2009-12-15 11:57:33 +01:00
Eric Pouech 92b9b0940d dbghelp: Wrap the symt* <=> index transformations. 2009-12-15 11:56:45 +01:00
Eric Pouech 07c1a1ca51 dbghelp: Fix module on which GetTypeFromName is done. 2009-12-15 11:56:18 +01:00
Eric Pouech b4da46ebe8 dbghelp: A couple of fixes for dwarf2 support on a 64bit platform. 2009-12-14 12:29:14 +01:00
Eric Pouech c6eb8104dd dbghelp: Enforce using 64bit integers for module's address and size. 2009-12-14 12:28:54 +01:00
Eric Pouech 9ff52fb82c dbghelp: Don't return error when validating a 64bit wide address on a 64bit platform. 2009-12-14 12:28:37 +01:00
Eric Pouech 02a70615f9 dbghelp: Add ELF support but for the current 32 vs 64 bit architecture. 2009-12-14 12:28:25 +01:00
Eric Pouech 114bb38cd8 dbghelp: Rewrote the SymRegisterCallback function so that they work on a 64bit platform. 2009-12-14 12:28:00 +01:00
Eric Pouech b037912c9d dbghelp: Fix a couple of casts on 64bit platforms. 2009-12-14 12:27:32 +01:00
Eric Pouech c300f215b1 dbghelp: Make the module enumeration process compatible with 64bit platforms. 2009-12-14 12:26:51 +01:00
Alexandre Julliard 891d025639 dbghelp: Fix an invalid pointer cast. 2009-12-10 15:31:27 +01:00
Alexandre Julliard 7f88738fa6 dbghelp: Moved addr_to_linear() to stack.c. 2009-12-10 15:29:20 +01:00
Eric Pouech 185e5daed6 dbghelp: For mingw32 (stabs debug info), parse the FileHeader's symbol table to offset properly the global variables. 2009-12-10 11:53:57 +01:00
Marcus Meissner 30c1df4a08 dbghelp: Add a missing NULL check (Coverity). 2009-12-09 12:03:47 +01:00
Marcus Meissner d6f78e4014 dbghelp: Check wImageName for NULL (Coverity). 2009-12-01 13:14:40 +01:00
Eric Pouech db077e11ad dbghelp: In dwarf parsing, allow 64 bit wide values. 2009-11-29 16:39:35 +01:00
Eric Pouech ed786fbae4 dbghelp: Correctly compute offsets in line number information. 2009-11-23 10:36:09 +01:00
Eric Pouech 9d80b19e83 dbghelp: Revisit array len description for debug format parsers.
One can now pass -1 as array len so that its size will be computed
later on (useful for dealing with forward declarations where size is
not known at array definition).
2009-11-23 10:36:02 +01:00
Eric Pouech 68cc7d5875 dbghelp: Beef up SymRefreshModuleList. 2009-11-17 12:05:46 +01:00
Andrew Nguyen 44ac91d78d dbghelp: Stub SymRefreshModuleList. 2009-11-16 17:04:48 +01:00
Eric Pouech aa9002755a dbghelp: Fix the threads stream size. 2009-11-13 13:37:51 +01:00
Eric Pouech 64144519a0 winedump, dbghelp: In .pdb files (>= VC2005), handle the case where the codeview_linetab2_file structure is not the first one. 2009-11-03 21:20:21 +01:00
Paul Bolle 4c97910387 dbghelp: elf_load_file: return if elf_map_file fails. 2009-10-28 14:28:38 +01:00
Eric Pouech 6a1b2a9ca5 dbghelp: Enhance support for constant values in dwarf debug information. 2009-10-05 14:56:24 +02:00
Louis Lenders a6aa4e1357 dbghelp: Add version resource. 2009-08-27 15:41:12 +02:00