Commit Graph

1262 Commits

Author SHA1 Message Date
Eric Pouech 4a03ffc1ef dbghelp: Store the IMAGE_OPTIONAL_HEADER in either 32bit or 64bit form.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 21:59:20 +02:00
Eric Pouech 339953cced dbghelp: Split storage of PE header.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 21:58:28 +02:00
Eric Pouech 3596358097 dbghelp: Added missing break statement.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 29fedfb5d4 dbghelp: Return a lexical parent for enums (as we do for UDTs).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 62c06fc31c dbghelp: Return the correct length for an enumeration.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 46c12b2971 dbghelp: Enums should be found by name (as UDTs are).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 5c8c999b5a dbghelp: Return the symt_module when requesting lexical parent of a UDT.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 2325962e74 dbghelp: Return the stored name for a compiland.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 1fa1620086 dbghelp: Introduce internal type (symt_module) to match SymTagExe.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 3ed209e0d9 dbghelp: Correctly store and report bitfield information.
Bitfield information must be stored relative to first byte
of underlying integral type. We were storing the information
always relative to the first containing byte.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 85557f361b dbghelp: Fix two internal buffer allocations.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 5c271afc99 dbghelp: Fill more fields in SYMBOL_INFO in SymGetTypeFromName.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech d268cb028a dbghelp: Fix NameLen usage in SYMBOL_INFO(W).
SYMBOL_INFO.NameLen should be the actual length of the symbol, not the
length of the (potentially truncated) string returned in
SYMBOL_INFO.Name. Add an helper (symbol_setname) to set those fields
properly.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Michael Stefaniuc e1e761d55f dbghelp: Remove superfluous casts to self.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Eric Pouech 7d54682ffc dbghelp: Fix a failure about 'wrong name EntryPoint'.
Regression was introduced in d614ac4671
by allowing to return the symbol with the lowest address in the module
even if the requested address was strictly below.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-24 20:49:05 +02:00
Eric Pouech 5ddcb94af6 winedump: Correct and update a couple of infos in PDB symbol stream header.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-24 19:59:23 +02:00
Eric Pouech d6aff64ccf winedump: Add support for dumping heap_alloc_site CodeView records.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-24 19:57:53 +02:00
Eric Pouech 0003c64e5b winedump: Correctly support flags in public records (V1 and V2).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-24 19:55:08 +02:00
Eric Pouech bf6ac26f75 winedump: Fix public and data/proc ref definitions of Codeview records.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 12:05:14 +02:00
Eric Pouech 7499b98ec8 winedump: Update support for S_COMPILE* records.
Don't mix up S_COMPILE records with compiland information.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 12:04:36 +02:00
Eric Pouech 9adf73be7e dbghelp:: Add proper support for S_OBJNAME records.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 12:03:27 +02:00
Eric Pouech a9c552fe7f winedump: Dump calling convention attributes for CodeView.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 12:01:59 +02:00
Alistair Leslie-Hughes bad67b1421 dbghelp: Initialize new structure members.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-20 13:16:53 +02:00
Eric Pouech beb1314307 dbghelp/tests: Try to fix failure in current dbghelp tests.
Testbot failures in previous SymGetTypeFromName patch have nothing
to do with that former patch. Trying to address errouneous test.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:10:00 +02:00
Eric Pouech 71e2ab0ed3 dbghelp: Correctly initialize the module_pair structure in SymGetTypeFromName.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 16:09:44 +02:00
Alexandre Julliard f2838cc1d4 dbghelp: Look for .so files in the architecture-specific directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-28 16:25:48 +02:00
Alexandre Julliard f14632f345 dbghelp: Support loading builtins from the architecture-specific PE directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-26 21:34:02 +02:00
Gijs Vermeulen 8d260b40fc dbghelp: Implement SymFromNameW().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50829
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-22 21:12:57 +02:00
Zebediah Figura b70f9680c4 dbghelp: Link directly to __unDName.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-22 10:20:52 +02:00
Mark Harmstone e5c289f29d mscvpdb.h: Use official names for CodeView constants.
Signed-off-by: Mark Harmstone <mark@harmstone.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 18:52:57 +01:00
Alexandre Julliard e2659819b8 include: Always define 32- and 64-bit versions of the TEB and PEB structures.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-05 15:53:19 +01:00
Paul Gofman 4005201922 dbghelp: Support UWOP_PUSH_MACHFRAME on x64.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 16:19:28 +01:00
Paul Gofman 6bcde00566 dbghelp: Fix unwind opcodes on x64.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-15 16:19:26 +01:00
Jacek Caban 04ddabfdff dbghelp: Fetch version info only for PE modules in minidumps.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-14 21:43:30 +01:00
Jacek Caban 310019789f dbghelp: Use WINELOADER environment variable from debuggee process in get_wine_loader_name.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49838
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-08 22:25:59 +01:00
Rémi Bernon 8ec843e77b dbghelp: Read process memory using target addresses, not debugger.
This fixes "wine winedbg --gdb winecfg" not working anymore.

There was a regression since f40195cd92, but the environment read was
broken before.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 17:51:36 +01:00
Alexandre Julliard b636f9816f krnl386: Move the 16-bit stack out of the WOW32Reserved field.
Based on a patch by Sebastian Lackner.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 21:31:53 +01:00
Brendan Shanks f40195cd92 dbghelp: Use PEB->CloudFileFlags instead of PEB->Reserved for debug base address.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50077
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:06:52 +01:00
Jan Sikorski fd4b700ad5 dbghelp: Avoid forwarded exports.
Fallout 76 does not handle forwarded exports of these functions.

Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-19 14:58:29 +02:00
Ken Thomases c7a0d5f626 dbghelp: Avoid asserting on egregiously long stabs symbol names.
Some Mac libraries have symbols which are many thousands of characters long.
(Thank you, C++ templates!)  It doesn't seem worth it to accommodate those by
dynamically allocating the symbol name buffer, but we definitely don't want to
assert.  Just log an ERR.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:24:19 +02:00
Vijay Kiran Kamuju 7e965d60b5 dbghelp: Add xmm and mxcsr register mapping functions for i386.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-05 15:06:53 +02:00
Zebediah Figura 70b2d181b1 dbghelp: Replace another usage of GetEnvironmentVariable() with the target process's environment.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-01 11:32:43 +02:00
Rémi Bernon 774ee4734a dbghelp: Ignore missing debug info in SymInitializeW.
When fInvadeProcess is used, we return an error if the target process
is found but its debug info is not. We should only return an error if
the process is not found.

This fixes a SymInitializeW popup error on Hard Reset Redux startup.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-01 10:02:16 +02:00
André Hentschel 30f17befaf dbghelp: Remove support for PPC32.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 16:46:14 +02:00
Jacek Caban 7b6f6257bc dbghelp: Use debuggee environment in search_unix_path.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Francois Gouget ab4665f4ae dbghelp: Fix the spelling of a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Jacek Caban 2b0977fc71 dbghelp: Use debuggee environment variables in search_dll_path.
This fixes searching wow32 binaries, where debuggee search path is
different than debugger's.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:05 +02:00
Alexandre Julliard 341feeb10e dbghelp: Use stricmp() instead of _strnicmp(..., -1).
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 14:26:19 +02:00
Alexandre Julliard 0163db5152 dbghelp: Make qsort callback explicitly cdecl.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 09:14:17 +02:00
Jacek Caban e014d325dd dbghelp: Get rid of no longer needed #ifdefs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 09:13:59 +02:00
Jacek Caban 6b1bc0beac dbghelp: Get rid of no longer needed HAVE_ZLIB checks.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 09:13:51 +02:00
Jacek Caban cf6bbb96d0 dbghelp: Build with ucrtbase.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban 5bc58410f2 dbghelp: Don't use PATH to search for libraries.
It should be used only for the main executable, for which we get full
path anyway.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban ceae3f0207 dbghelp: Remove unneeded includes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban d483eb21cf dbghelp: Import zlib inflate code.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban 131fb79535 dbghelp: Always build all loader backends.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban 9896f1ce33 dbghelp: Fix GCC warnings in macho_module.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Jacek Caban 26f5bfdd4d dbghelp: Introduce read_process_memory helper.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Chip Davis 53b5c3b6c6 dbghelp: Ignore N_INDR symbols.
These are aliases for another symbol. They are often seen on Mac OS when
a dylib reexports some symbols defined in another dylib.

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:41 +02:00
Jacek Caban 88edff8467 dbghelp: Use mount manager to lookup dsym by uuid.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 17:02:35 +02:00
Jacek Caban c3c2cda9d2 dbghelp: Factor out query_dsym.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 17:02:32 +02:00
Jacek Caban 3047385437 dbghelp: Don't bother trying to initialize loader backend if we can't get debug base address from PEB.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 20:49:33 +02:00
Jacek Caban f2b8af7e7e dbghelp: Get rid of get_dyld_image_info_address.
We should get the address from PEB anyway.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 20:49:20 +02:00
Jacek Caban dab78486d3 dbghelp: Don't use _NSGetExecutablePath in macho_search_loader.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 20:48:49 +02:00
Jacek Caban e341bd7fe4 dbghelp: Use local constants definitions instead of mach-o/loader.h.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 20:48:43 +02:00
Jacek Caban 1420e64e5f dbghelp: Don't use stdint.h types.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 20:48:36 +02:00
Jacek Caban 0c56a8f87b dbghelp.c: Use local mach header declaration.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 20:48:29 +02:00
Jacek Caban 7b2e53f5b5 dbghelp: Use local symtab and segment commands declarations.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 22:13:07 +02:00
Jacek Caban 8230889f1f dbghelp: Use local fat header declaration.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 21:17:24 +02:00
Jacek Caban 64341284c5 dbghelp: Use local macho section declaration.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 21:17:24 +02:00
Jacek Caban c695e7e99e dbghelp: Use local macho load command declaration.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 21:17:24 +02:00
Jacek Caban 7254579417 dbghelp: Don't store entire mach header in image_file_map.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 21:17:24 +02:00
Jacek Caban b664ae8e60 dbghelp: Don't use system headers for ELF declarations.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:16:00 +02:00
Jacek Caban 56f2b950c3 dbghelp: Use local ELF constants definitions.
Based on glibc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:15:29 +02:00
Jacek Caban 6fde25300d dbghelp: Don't use ELF32_ST_BIND and ELF32_ST_TYPE macros.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:15:21 +02:00
Jacek Caban 66ab2c503d dbghelp: Inline ELF magic constants.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:15:14 +02:00
Jacek Caban 7b12b1849c dbghelp: Use local symbol table entry declaration.
Based on glibc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:15:05 +02:00
Jacek Caban 849cf6ed51 dbghelp: Use local dynamic section entry declaration.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:14:44 +02:00
Jacek Caban 186d610442 dbghelp: Use local ELF program segment header declaration.
Based on glibc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:14:39 +02:00
Jacek Caban a6f0fe8d1c dbghelp: Use local elf_section_header declaration.
Based on glibc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:14:34 +02:00
Jacek Caban 78845911da dbghelp: Use local elf_header declaration.
Based on glibc.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:14:25 +02:00
Jacek Caban 11ea231501 dbghelp: Use local declarations of r_debug and link_map structs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:14:16 +02:00
Jacek Caban 620019fd71 dbghelp: Use local AT_SYSINFO_EHDR definition.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:14:06 +02:00
Jacek Caban ee34cf365d dbghelp: Don't use *_NULL constants.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:13:56 +02:00
Jacek Caban 2534c2a2d2 dbghelp: Use local NOTE_GNU_BUILD_ID declaration.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 22:13:49 +02:00
Jacek Caban 94ad6bd2e6 dbghelp: Fix misleading indentation warning.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:10 +02:00
Jacek Caban 9c2cedabc7 dbghelp: Pass stab size to stabs_parse.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:10 +02:00
Jacek Caban f48f8cc399 dbghelp: Use local declaration for 64-bit macho nlist.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:10 +02:00
Jacek Caban 061146c2ab dbghelp: Use local stab_nlist declaration in macho_module.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Jacek Caban 47f1c5a993 dbghelp: Clear N_PEXT flag of stab type in macho files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Jacek Caban 208719a750 dbghelp: Provide N_PEXT and N_SECT defines when not available.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Jacek Caban 3b6c268380 dbghelp: Use DWARF registry mapping quirk only for actual macho modules.
Fixes handling DWARF in PE on macOS.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Jacek Caban 5d8067c608 dbghelp: Pass module to map_dwarf_register.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Gerald Pfeifer f7a091af48 dbghelp: Define NT_GNU_BUILD_ID regardless of whether __ELF__ is defined.
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Jacek Caban f803da493a dbghelp: Use LONG_PTR instead of long type.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Jacek Caban 8d702a3aa5 dbghelp: Remove unused code in module_find_cb.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Jacek Caban e3354e44f1 dbghelp: Move reading debug base address from PEB to check_live_target.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:30:30 +01:00
Jacek Caban 635506921a dbghelp: Use PE type for virtual modules.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:30:23 +01:00
Jacek Caban c8b5a3be55 dbghelp: Explicitly pass file type to path_find_symbol_file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:30:14 +01:00
Jacek Caban a676c5785e dbghelp: Use loader_ops for load_debug_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:30:09 +01:00
Jacek Caban 5ae3f969d4 dbghelp: Use loader_ops for load_module.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:30:04 +01:00
Jacek Caban 16a3481bd2 dbghelp: Use loader_ops for enum_modules.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 19:29:50 +01:00
Jacek Caban 2a5160c4f2 dbghelp: Pass process struct to image_uses_split_segs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban 1bbd54409a dbghelp: Use loader_ops for fetch_file_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban adecdb1d01 dbghelp: Don't use elf_fetch_file_info and macho_fetch_file_info in module_find_cb.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban fec0157585 dbghelp: Introduce loader_ops to abstract platform-specific loader and use it to synchronize module list.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban f30fdd1822 dbghelp: Move loader search functions to the end of module files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban 724f433f39 dbghelp: Pass process struct to elf_enum_modules and macho_enum_modules.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban 6b3018d03d dbghelp: Store process struct pointer in dump context.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 19:43:38 +01:00
Jacek Caban be9072ec74 dbghelp: Use search_dll_path to load seach macho files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:59:03 +01:00
Jacek Caban c3bb866bfc dbghelp: Use search_unix_path to load seach macho files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:59:01 +01:00
Jacek Caban ca49552f64 dbghelp: Introduce search_unix_path helper and use it in elf_search_and_load_file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:58:59 +01:00
Jacek Caban ee5d29b7aa dbghelp: Use search_dll_path in elf_search_and_load_file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:58:57 +01:00
Jacek Caban 21af2e1947 dbghelp: Make dll builtin PE path search helper more generic.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 20:58:54 +01:00
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