Commit Graph

1048 Commits

Author SHA1 Message Date
Jacek Caban 77e880e6d2 dbghelp: Use file_name helper in more places.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:58:52 +01:00
Jacek Caban 63d41a41f2 dbghelp: Rename helpers to make unicode variants default.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:58:50 +01:00
Jacek Caban 1ece841d93 dbghelp: Use page size from sysinfo.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 19:32:33 +01:00
Jacek Caban 7544b9f6fb dbghelp: Call GetSystemInfo in DllMain.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 19:32:31 +01:00
Jacek Caban ebf57f01f4 dbghelp: Use Windows API to map macho files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 20:32:38 +01:00
Jacek Caban 838de56e0a dbghelp: Lookup real image paths in image_locate_debug_link.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:27:10 +01:00
Jacek Caban 2642f43eab dbghelp: Support PE debug link files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:27:08 +01:00
Jacek Caban 0dd4958688 dbghelp: Support GNU debug link and build id in PE files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:27:06 +01:00
Jacek Caban 4694801e4f dbghelp: Move elf_check_alternate implementation to module.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:27:02 +01:00
Jacek Caban d386823979 dbghelp: Move get_dos_file_name to path.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:26:52 +01:00
Jacek Caban 171c6fadab dbghelp: Use elf_check_debug_link in elf_locate_build_id_target.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:26:50 +01:00
Jacek Caban c1d867fa87 dbghelp: Check checksum before mapping elf file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 20:26:47 +01:00
Jacek Caban 5ba1c5960e dbghelp: Pass module struct to elf_locate_debug_link.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:39:04 +01:00
Jacek Caban e1b28a9c98 dbghelp: Support Windows paths in elf_locate_debug_link.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:39:00 +01:00
Jacek Caban a5a6b0dcb6 dbghelp: Move HANDLE-based crc32 helper to dbghelp.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:38:56 +01:00
Jacek Caban 1d96af3627 dbghelp: Introduce generic image_unmap_file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:38:52 +01:00
Jacek Caban 95a5f82961 dbghelp: Use vtbl to handle different image_file_map types.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:38:47 +01:00
Jacek Caban 02dfd959ca dbghelp: Move alternate file map pointer to generic image_file_map.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:38:41 +01:00
Jacek Caban a3e1c7fa02 dbghelp: Use generic image_find_section in elf_check_alternate.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:38:34 +01:00
Jacek Caban a60b3985bf dbghelp: Use Windows API to map ELF files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:19 +01:00
Jacek Caban d731208602 dbghelp: Search also real path location in path_find_symbol_file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-10 20:13:10 +01:00
Jacek Caban e21b61392c dbghelp: Try loading builtin modules from unix installation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-10 20:13:08 +01:00
Piotr Caban 7e16acf380 dbghelp: Use RtlImageDirectoryEntryToData in pe_load_msc_debug_info.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-18 20:32:54 +01:00
Piotr Caban ab4c64a409 dbghelp: Support 32 and 64-bit binaries in ImageDirectoryEntryToDataEx.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-18 20:30:44 +01:00
Chip Davis 8000b5415d dbghelp: Look for .eh_fram if no .eh_frame is found.
lld produces these, because '.eh_frame' misses the eight-character limit
by one character, but '.eh_fram' does not. This allows it to avoid
producing a string table for this common section.

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-13 15:59:55 +01:00
André Hentschel 7a567d1bb0 dbghelp: Fix MiniDumpWriteDump spec file entry.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-08 21:57:15 +01:00
Ken Thomases 4b9defe09a dbghelp: Fix reading the target's dyld image info, based on its CPU architecture.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:55:33 +01:00
Ken Thomases 28a25b052d dbghelp: Fix reading the address of the target's dyld image info from its PEB.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:55:29 +01:00
Alex Henrie ae6e401754 dbghelp: Avoid dead assignment (scan-build).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-16 10:14:27 +02:00
Rémi Bernon d263ba97fb dbghelp: Prevent an invalid memory access when the search path element is empty.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-29 20:08:14 +02:00
Conor McCarthy 9d3687ad32 dbghelp: Return NULL instead of IMAGE_NO_MAP when PE file mapping fails.
A NULL test is always applied to the return value from pe_map_full(), but
IMAGE_NO_MAP is not NULL, it is ((void*)-1).

Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-02 10:52:03 +02:00
Zebediah Figura a91b0faefd dbghelp: Use RtlComputeCrc32().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-02 10:52:03 +02:00
Alistair Leslie-Hughes 4aa7fbe056 dbghelp: Return a dos path from SymGetLineFromAddr.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34687
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-17 22:45:03 +02:00
Alistair Leslie-Hughes 101820d01a dbghelp: Use internal flag for loading native files.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-10 12:29:30 +02:00
Alistair Leslie-Hughes fa5e5df71d dbghelp: SymSet/GetExtendedOption support a WINE only option.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-10 12:29:26 +02:00
Alistair Leslie-Hughes 3fed878725 dbghelp: Add SymGetExtendedOption/SymSetExtendedOption stubs.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-10 12:29:21 +02:00
Alistair Leslie-Hughes 48a74277f5 dbghelp: Support S_HEAPALLOCSITE entry.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-06 19:01:27 +02:00
Michael Stefaniuc 594a5878d0 dbghelp: Fix the spelling of a parameter.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-04 23:06:03 +02:00
Alexandre Julliard 7ac6cdfa00 configure: Use pkg-config to check for zlib.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-04 19:23:11 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Piotr Caban 061f65f9aa dbghelp: Don't use strcasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-08 19:50:40 +02:00
Alexandre Julliard 3d6febc997 include: Get rid of the DPRINTF() macro.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-08 19:34:44 +02:00
Francois Gouget 5651c9dd28 dbghelp: Make minidump_add_memory64_block() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 10:11:53 +01:00
Francois Gouget ab71398eb0 dbghelp: Spelling fixes in a couple of comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-14 16:11:53 +01:00
Eric Bissonnette b90bbcbe75 dbghelp: Support full memory dumps.
Add support of flag MinidumpWithFullMemory in function
MinidumpWriteDump. A Memory64ListStream is added to the minidump
streams and all memory regions of the process with MEM_COMMIT state
are written to the last part of the minidump file.

Signed-off-by: Eric Bissonnette <ebisso.dev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 19:40:11 +01:00
Francois Gouget edcff4046c dbghelp: Make symt_get_best_at() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-10 15:51:18 +01:00
Zebediah Figura 797f93be65 dbghelp: Avoid using inline assembly in have_x86cpuid().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-28 10:43:37 +01:00
Zebediah Figura b7f3e6ba31 dbghelp: Avoid using inline assembly in do_x86cpuid().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-28 10:43:37 +01:00
Huw Davies 74f425e70d dbghelp: Fix build failure on macOS.
This was caused by commit 8d096fb5e2.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-27 19:32:15 +01:00
Andreas Maier d614ac4671 dbghelp: SymFromAddr: Handle 2 or more symbols at the same address correct.
Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:29:37 +01:00
Andreas Maier 6c3418914d dbghelp: Set last error for SymGetModuleBase-calls to ERROR_MOD_NOT_FOUND.
Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:29:29 +01:00
Andreas Maier 8d096fb5e2 dbghelp: Set correct values in symt_fill_sym_info (SYMBOL_INFO).
Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:29:26 +01:00
Andreas Maier dbcf9728fa dbghelp: Use correct record in codeview_snarf_public.
Use public_vx iststead of data_vx for public symbols.

Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:29:20 +01:00
Zebediah Figura 63ef9854fb dbghelp: Only check process architecture if we are actually given a process.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45407
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 22:42:41 +01:00
Alexandre Julliard 3e1a562901 dbghelp: Return a Unicode path in path_find_symbol_file().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-15 14:24:58 +01:00
Andreas Maier 6030ee5f6f dbghelp: Search for debug files in module path too.
Signed-off-by: Andreas Maier <andy1.m@gmx.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-15 14:15:51 +01:00
Alex Henrie f333c4a210 dbghelp: Turn variable 'code' into a static constant.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:21:52 +01:00
Zebediah Figura 86805c3d4b dbghelp/dwarf: Use debugstr_a() to trace external strings.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-24 10:24:18 +02:00
Józef Kucia b3717a92d1 dbghelp: Fix memory leak in SymInitializeW() (Coverity).
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 19:22:02 +02:00
Francois Gouget 44598d335e dbghelp/tests: Make stack_walk_thread() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 20:01:56 +02:00
Zebediah Figura ca9b1d0077 dbghelp/msc: Use the word size of the target process.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Zebediah Figura b7defd2946 dbghelp: Correctly determine the dyld image info address.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Zebediah Figura 42745c068f dbghelp/dwarf: Use the word size of the target process.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45490
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Zebediah Figura 3507615f35 dbghelp/dwarf: Allow get_context_reg() to handle different register sizes.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Zebediah Figura 9ae588a96e dbghelp/dwarf: Use the correct backend CPU in dwarf2_virtual_unwind().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Zebediah Figura 3ce304e601 dbghelp: Use WOW64_CONTEXT instead of CONTEXT for i386 backend.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Ken Thomases 3ff8fa7ed1 dbghelp: Fix loading of Mach-O load commands for 64-bit binaries.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-17 08:41:22 +02:00
Michael Stefaniuc 053a7e225c dbghelp: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 00:18:02 +02:00
Zebediah Figura 8dc0d36717 dbghelp/tests: Add a simple test for StackWalk64().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-05 19:57:16 +02:00
André Hentschel 3d482d3f9f dbghelp: Recompute location after fixing it.
Fix a assertion raised by every exception with newer clang versions (>3.7) at least on ARM64:
../../../dlls/dbghelp/dwarf.c:1641: void dwarf2_parse_variable(dwarf2_subprogram_t *, struct symt_block *, dwarf2_debug_info_t *): Assertion `subpgm->func' failed.

Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-03 11:12:43 +02:00
André Hentschel 86864486be dbghelp: Map SIMD dwarf registers on ARM64.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-28 22:51:12 +02:00
Zebediah Figura 7d441808ac dbghelp: Read the stabs nlist entry corresponding to the target's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Zebediah Figura 1dc9bb70cd dbghelp: Translate the 32-bit Mach-O section header to the 64-bit one.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Zebediah Figura 0fc3c33637 dbghelp: Read the Mach-O segment command corresponding to the target's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Zebediah Figura bf7681cb2f dbghelp: Pass an image_file_map to macho_enum_load_commands().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Zebediah Figura f2e38e1795 dbghelp: Read the 32-bit Mach-O header.
It is identical to the 64-bit header, except for the "reserved" field.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Zebediah Figura f0ee3471f3 dbghelp: Determine the target Mach-O architecture from the process's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-15 12:56:48 +02:00
Zebediah Figura 99e818154a dbghelp: Read the r_debug and link_map structs corresponding to the target's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 09:21:59 +02:00
Zebediah Figura 7e4fd17d5b dbghelp: Translate the 32-bit ELF symbol struct to the 64-bit one.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 09:21:49 +02:00
Zebediah Figura 51ada19ac2 dbghelp: Read the Elf_auxv_t struct corresponding to the target's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 09:21:38 +02:00
Zebediah Figura bb53152faa dbghelp: Read the Elf_Dyn struct corresponding to the target's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 09:21:34 +02:00
Zebediah Figura bd620ffb44 dbghelp: Read the ELF program header corresponding to the target's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 09:21:28 +02:00
Huw Davies cf78601b37 dbghelp: Add a missing include to fix the build.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:42:25 +02:00
Zebediah Figura 4005901773 dbghelp: Translate the 32-bit ELF section header to the 64-bit one.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:42:12 +02:00
Zebediah Figura 799e0bfa57 dbghelp: Translate the 32-bit ELF header to the 64-bit one.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:42:03 +02:00
Zebediah Figura a612f1f56f dbghelp: Detect ELF architecture before reading the whole header.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:41:54 +02:00
Zebediah Figura c2c0e4fe51 dbghelp: Don't enforce child architecture in elf_map_file().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:41:46 +02:00
Zebediah Figura 185d9ee7eb dbghelp: Correctly determine the wine loader base address.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 21:36:47 +02:00
Zebediah Figura a981edf0bc dbghelp: Determine the wine loader name from the target process's architecture.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 21:36:42 +02:00
Zebediah Figura 9b973eee9e dbghelp: Add a helper to check if a given module is the Wine loader.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-31 21:35:48 +02:00
Martin Storsjo e0780c258f ntdll: Update the ARM64 CONTEXT struct to match Win SDK 10.0.16299.0.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-19 13:13:59 +01:00
Zebediah Figura 5d740ddcfe dbghelp: Avoid an infinite loop.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-01 22:24:59 +01:00
Nikolay Sivov 6fd9a98f1d dbghelp: Use correct module name buffer length when doing enumeration.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-31 17:54:55 +01:00
Nikolay Sivov 1d3c14d2d1 dbghelp: Use correct destination buffer length when initializing module data.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 20:42:07 +01:00
Nikolay Sivov da1d075b83 dbghelp: Make sure returned module info strings are null-terminated.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 20:42:07 +01:00
Nikolay Sivov aae9700acc dbghelp: Preserve caller supplied structure size member in SymGetModuleInfo() functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 20:42:07 +01:00
Alexandre Julliard 21c12ddc64 ntdll: Fix CONTEXT definition for ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-05 20:30:01 +01:00
Alexandre Julliard eb337adcc2 ntdll: Fix CONTEXT definition for ARM.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-05 13:21:31 +01:00
Zebediah Figura 00e27186ed dbghelp: Silence a noisy FIXME.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-21 19:24:01 +02:00
Akihiro Sagawa d47c07d0cf dbghelp: Avoid using isdigit() for WCHARs.
Found with Coccinelle.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-16 18:58:58 +02:00
Daniel Lehman 8d6cf80026 dbghelp: Add support for char32_t type.
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-04 09:13:22 +02:00
Daniel Lehman b316ac1897 dbghelp: Add support for char16_t type.
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-04 09:13:18 +02:00
Alexandre Julliard 74f05b8660 dbghelp: Use the main module load address from the PEB.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:04 +02:00
Michael Stefaniuc 329b1763cb dbghelp: Use debugstr_a() to trace a string that can be NULL.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:03:19 +02:00
Jacek Caban 4bbb252adc dbghelp: Removed no longer needed psapi import.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-03 13:25:14 +01:00
Nikolay Sivov ab27cb48fc dbghelp: Support CIE version 4 in parse_cie_details().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-07 10:41:07 +09:00
Jacek Caban b15cccd2dc dbghelp: Removed no longer needed wine_rb_destroy call.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-06 11:28:39 +09:00
Jacek Caban acc0bb0521 rbtree.h: Pass compare function instead of wine_rb_functions to wine_rb_init.
Also change return type to void since the function can no longer fail.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-02 23:30:29 +09:00
Nikolay Sivov 99f56bf78d dbghelp: Recognize DW_FORM_flag_present.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 10:53:11 +09:00
Austin English 6e0366fd5e dbghelp: Add forwards for EnumerateLoadedModulesEx/EnumerateLoadedModulesExW.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 21:18:33 +09:00
Andrey Gusev b3c254cd75 dbghelp: Fix a typo in comment.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-05 01:27:51 +09:00
Thomas Faber e91c06b068 dbghelp: Use documented member name in SYMBOL_INFO structure.
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 12:20:58 +09:00
Michael Stefaniuc c8ab4004ad dbghelp: Use CONTAINING_RECORD instead of reimplementing it.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-08 21:29:15 +09:00
André Hentschel d8a39d40d8 dbghelp: Add even more symbol types.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-11 19:39:22 +09:00
Ralf Habacker 6018064d59 dbghelp: Fix crash in module_find_cb on trying to parse non image files.
Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de>
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-11 16:43:21 +09:00
Austin English 4f3f8a8cb7 dbghelp: Version to 6.1.7601.17514.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-10 18:35:36 +09:00
Alexandre Julliard 1fa7710ff9 makefiles: Get rid of the DLLPREFIX variable.
Android libraries will be handled differently.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-09 12:12:58 +09:00
André Hentschel ee88d4ed99 dbghelp: Initialize more basic types.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-13 22:21:13 +09:00
Qian Hong fd9d4b6232 dbghelp: Parse DW_TAG_const_type inside dwarf2_parse_subprogram.
Signed-off-by: Qian Hong <qhong@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-12 23:34:57 +09:00
Qian Hong 62d6a09085 dbghelp: Parse DW_TAG_const_type inside dwarf2_parse_subprogram_block.
Signed-off-by: Qian Hong <qhong@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-12 23:34:57 +09:00
Ken Thomases d5739561d8 dbghelp: Provide a default value for DYLD_FALLBACK_LIBRARY_PATH, which is closer to how dyld behaves. 2015-09-18 14:59:01 +02:00
Ken Thomases 8d6b349409 dbghelp: Fix a comment to reflect what the code's actually doing. 2015-09-18 14:58:58 +02:00
Ken Thomases f458cd844a dbghelp: On Mac, get the wineloader path from the target or our own process before resorting to guessing.
This makes backtraces more reliably complete when WINELOADER isn't set
and the loader isn't in a typical location.
2015-09-18 14:58:55 +02:00
Francois Gouget f8a7d6ed74 Assorted spelling fixes. 2015-08-07 23:50:48 +09:00
Sebastian Lackner fa4dfa4325 dbghelp: Implement UnDecorateSymbolNameW.
Also fixes a bug in UnDecorateSymbolName when undecorated_length == 0.
2015-08-06 23:36:02 +09:00
Ken Thomases 49f0bf6f0b dbghelp: Ignore Mach-O segments other than __TEXT for images in dyld's shared cache.
Images in the shared cache have their segments mapped non-contiguously.  We
don't know how to find where the non-__TEXT segments actually are.  Also, the
code assumes that the image is mapped contiguously in various places.  So, we
just ignore those segments.

Treating the non-contiguous segments as though they were contiguous caused
their apparent memory ranges to overlap, leading to addresses being attributed
to the wrong module, let alone symbol.
2015-08-04 12:21:58 +02:00
Ken Thomases be68890cac dbghelp: Fix a copy-paste error in comparing Mach-O segment names. 2015-08-04 12:21:58 +02:00
Ken Thomases 5c39776327 dbghelp: Add support for loading an external DWARF debug info file associated with a Mach-O module.
Such external debug info files are created by the dsymutil command.  Usually, it
creates a <name>.dSYM bundle directory but it can also produce a <name>.dwarf
flat file.  The code will find and use either.  It first checks if such a bundle
or file is adjacent to the module binary.  If it's not, it uses Spotlight to
search for a .dSYM bundle based on the binary's UUID, which is what gdb and lldb
do, too.  That way, it can find it anywhere on the system.
2015-06-29 19:07:52 +09:00
Ken Thomases 70565f1b8b dbghelp: Don't parse the DWARF info from Mach-O files if we were requested to only provide public symbols.
This now works more like how the ELF and PE support works.
2015-06-29 19:07:52 +09:00
Ken Thomases 83c1255f66 dbghelp: Fix mapping of DWARF register numbers on x86 OS X.
For backward compatibility with old, buggy GCC, Apple uses a different register
numbering scheme for the eh_frame section.

See, for reference, the comments near the top of this file from LLDB's source:
https://github.com/llvm-mirror/lldb/blob/release_36/source/Plugins/Process/Utility/RegisterContext_x86.h
2015-06-29 19:07:51 +09:00
Ken Thomases 3a9698f4af dbghelp: Parse the DWARF information in Mach-O modules.
At this point, this is just the .eh_frame information used for walking the stack.
2015-06-25 14:29:38 +09:00
Ken Thomases 500df92108 dbghelp: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM. 2015-06-25 14:29:38 +09:00
Ken Thomases 0bfa11455c dbghelp: Implement the image_private.h functions for Mach-O modules. 2015-06-25 14:29:38 +09:00
Ken Thomases 729b53fb9e dbghelp: For Mach-O, keep the module file mapped for as long as the module is tracked. 2015-06-25 14:02:17 +09:00
Ken Thomases e15e9331cb dbghelp: Move the macho_file_map structure into image_file_map. 2015-06-25 14:02:12 +09:00
Ken Thomases dcbec3bf6a dbghelp: Use existing IMAGE_NO_MAP constant instead of redundant MACHO_NO_MAP. 2015-06-25 14:02:00 +09:00
Ken Thomases 41d741761f dbghelp: Remove the unused arch_size field of struct macho_file_map.
It was set, but never read.
2015-06-25 14:01:54 +09:00
Ken Thomases 4923f9afd5 dbghelp: Enable enumerating and loading 64-bit Mach-O modules. 2015-06-25 14:01:49 +09:00
Ken Thomases 378d557d77 dbghelp: Fix a leak of the Mach-O module structure by adding a module_remove callback. 2015-06-25 14:01:32 +09:00
Ken Thomases 8430ebc6b5 dbghelp: Eliminate an unnecessary parameter from macho_load_debug_info().
From outside of macho_module.c, it's only called with NULL.  When it's
called with a non-NULL parameter, it's just a thin wrapper around
macho_load_debug_info_from_map(), so the code can just call that
directly.
2015-06-25 14:01:26 +09:00
Ken Thomases 604ce29cb3 dbghelp: Fix STABS support for 64-bit on OS X.
OS X uses a struct nlist_64 for 64-bit images, where the n_value field is a
64-bit unsigned integer.
2015-06-25 14:01:10 +09:00
André Hentschel bd1f7ef186 include: Rename 64-bit PState to 32-bit Cpsr on ARM64. 2015-06-15 14:51:33 +09:00
André Hentschel 8e0164bd26 include: Add more ARM64 CV constants. 2015-05-28 14:20:55 +09:00
André Hentschel 0d68edf03e dbghelp: Fix typo in trace output. 2015-05-20 22:10:19 +09:00
Austin English f832f85c80 dbghelp: Ignore some more symbol ids.
These are from MSVC 2013.
2015-05-20 17:32:49 +09:00
Grazvydas Ignotas 2fee06de49 dbghelp: Detect if return address information is missing. 2015-04-07 15:08:44 +09:00
Francois Gouget ed82981ae0 dbghelp: Mark internal symbols with hidden visibility. 2015-03-16 15:06:29 +09:00
Francois Gouget ba6e4ff66e dbghelp: pe_unmap_directory() is unused so remove it. 2015-03-16 15:03:31 +09:00
Francois Gouget 654657b715 dbghelp: Remove an unneeded NONAMELESSSTRUCT directive. 2015-03-10 15:18:25 +09:00
Michael Stefaniuc 1328ec4854 dbghelp: Remove no-op additions with 0 (PVS-Studio). 2015-03-09 22:06:39 +09:00