1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00
Commit graph

88 commits

Author SHA1 Message Date
Eric Pouech
60108ea1bc dbghelp: Pretend mach-o is present in case of failure.
On MacOs, starting with Big Sur 11.0.1, the system dynamic
libraries are no longer directly accessible on disk.
They are still available through dlopen and friends. For getting
access to the images (and their debug symbol), Apple provides,
in the developper kit, the tools to extract the files. Note that
this is handled as a database of all system libraries, where ASLR
is in place such that segments of a given library are no longer
contiguous in memory (dbghelp doesn't currently handle this).

Apart from not having image information nor debug information,
another side effect is that dbghelp tries every time it refreshes the
mach-o module list to reload any library for which it didn't have
an image file. This can be lengthy (esp when a typical process has
more than 300 modules loaded).

This patch forces the creation of the dbghelp module even if the
image file isn't found.

This patch cuts startup time of 'winedbg notepad' from 9.9 to 7.4s.
YMMV.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-11-16 20:56:07 +01:00
Eric Pouech
01c98c5eaf dbghelp: Expose PE native vs builtin information to winedbg.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-11-16 20:56:07 +01:00
Eric Pouech
c50e02ec9c dbghelp: Expose some internal information about modules to winedbg.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-11-16 20:56:03 +01:00
Alexandre Julliard
f6d808477b include: Use proper dllimports for dbghelp functions. 2023-11-03 18:05:01 +01:00
Eric Pouech
20f6b54019 include/dbghelp.h: Added some missing definitions.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-06-20 20:29:45 +02:00
Eric Pouech
812b4b1ca3 dbghelp: Use source file path as stored in debug info format.
Currently, dbghelp returns the source file either:
- in DOS format when native module option isn't enabled
- as stored in debug info format otherwise

This used to work for PE modules inside ELF shared libraries but is broken
since evolution to REAL modules. This generates several issues:
- winedbg does not always set the native module option when calling dbghelp
  for source file related functions, leading to heterogenous output to user
- some dbghelp function rely on matching source paths, hence leading to
  errors in winedbg when mixing the two formats for the same source file.

Introduce a new Wine only dbghelp option to return the source paths as they
are stored inside debug information format, and activate it unconditionaly
inside winedbg.

This fixes some failure cases of command 'break <NN>' in winedbg.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-04-18 18:17:44 +02:00
Eric Pouech
417d2c0235 include: Ensure that SymRefreshModuleList() is properly defined.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-02-20 23:00:33 +01:00
Eric Pouech
a89975f731 dbghelp: Expose the real path to the module in SymGetModuleInfo*().
Expose the real path of a loaded module (potentially read from
WINEDLLDIR or WINEBUILDDIR or overriden load order or ...).  This
improves gdb integration by passing the real path to the loaded
modules (instead of the paths in c:\windows\ system subdirectories).
Introduce new Wine only dbghelp's extended option to enable the
feature.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54250
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 18:25:58 +01:00
Gijs Vermeulen
4f90e88d0b dbghelp: Add SymSrvGetFileIndexInfo stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48600
2022-09-12 17:28:23 +02:00
Nikolay Sivov
61f31d149c include: Move minidump types to a separate header.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-18 08:53:42 +02:00
Eric Pouech
a6bf722bff dbghelp: Implement SymEnumTypesByName(W).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-10 22:00:17 +01:00
Eric Pouech
59a187ec8d include: Added OMAP related definitions.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
c1f892914e include/dbghelp.h: Update inline-related APIs and structures.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-19 20:56:16 +02:00
Alexandre Julliard
dfdf56fbe4 include: Add more sal.h macros.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 13:05:24 +02:00
Eric Pouech
e1132a6e5a dbghelp: MapDebugInformation and UnmapDebugInformation are not available on 64 bit architectures.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Eric Pouech
f376dfd1fd dbghelp: Update SymGetTypeInfo() requests and SymTagEnum to latest dbghelp definitions.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Biswapriyo Nath
8647f7baa2 include: Add structure padding for aarch64 in dbghelp.h.
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-21 17:14:24 +02:00
Alistair Leslie-Hughes
95580835bb include: Update _IMAGEHLP_MODULEW64 stucture.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-20 13:16:52 +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
620da60f7f include: Add missing SYMOPT_* defines.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-04 23:05:26 +02: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
Andreas Maier
3b01149d86 dbghelp: Add SYMFLAG_- and SYMTYPE_-defines.
Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 12:29:24 +01: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
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
Francois Gouget
37978baa4a include: Add a set of parameter documentation macros to help compile windows applications. 2011-05-24 16:55:13 +02:00
Eric Pouech
68cc7d5875 dbghelp: Beef up SymRefreshModuleList. 2009-11-17 12:05:46 +01:00
Alexandre Julliard
d3bfd6d570 include: Add defines for 32-bit dbghelp functions on 64-bit. 2009-04-23 18:14:26 +02:00
Mike Ruprecht
e8515382bd dbghelp: Define _IMAGEHLP64 in Win64. 2009-03-09 13:26:45 +01:00
Mike Ruprecht
e976158fe7 dbghelp: Don't define 32-bit structs in 64-bit mode. 2009-03-06 12:49:04 +01:00
Francois Gouget
a399e3bcc4 dbghelp: Fix the PENUMLOADED_MODULES_CALLBACK() prototype. 2007-09-18 11:21:21 +02:00
Francois Gouget
98d63f3435 dbghelp & imagehlp: Fix the PSYM_ENUMSYMBOLS_CALLBACK() and PSYM_ENUMERATESYMBOLS_CALLBACK() prototypes.
Tweak the actual callbacks to better match the prototypes.
2007-09-18 11:20:24 +02:00
Francois Gouget
4dbe1f9164 dbghelp: Add some missing prototypes and types. 2007-09-18 11:20:06 +02:00
Francois Gouget
4c11d57f74 imagehlp & dbghelp: Add the IMAGEAPI and DBHLPAPI macros. 2007-08-06 12:30:00 +02:00
Francois Gouget
9d2f48dc0f dbghelp: Better match the PSDK types, especially with regards to constness.
Also add a number of missing prototypes, especially 64bit or Unicode
versions of existing prototypes, and the related structures.  Update
win32.api to fix the winapi_check warnings.
2007-08-03 12:43:40 +02:00
Francois Gouget
7a70f9f511 imagehlp: Add two missing fields. 2007-08-03 12:41:33 +02:00
Eric Pouech
f1436139fc dbghelp: Rewrote SymEnumerateModules with Unicode basis, and implemented SymEnumerateModulesW64. 2007-03-14 22:43:58 +01:00
Eric Pouech
ccf0be8e57 dbghelp: Implemented SymEnumTypesW. 2007-03-05 12:15:16 +01:00
Eric Pouech
2f0ed90c4e dbghelp: Implemented SymFindFileInPathW. 2007-02-22 12:26:16 +01:00
Eric Pouech
9e1f9ec19e dbghelp: Implemented SearchTreeForFileW. 2007-02-22 12:22:26 +01:00
Eric Pouech
c0be0032de dbghelp: Implemented EnumDirTreeW. 2007-02-22 12:22:05 +01:00
Eric Pouech
8b861202ba dbghelp: Implemented SymMatchFileNameW. 2007-02-22 12:21:40 +01:00
Eric Pouech
bcc1913354 dbghelp: Implemented FindExecutableImage[W]. 2007-02-22 11:39:52 +01:00
Eric Pouech
883732281e dbghelp: Implemented 64 bit versions of EnumerateLoadedModules. 2007-01-04 11:12:13 +01:00
Mike McCormack
cafe24b3ed dbghelp: Fix the prototype of some callbacks. 2006-06-14 12:47:05 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Eric Pouech
c25d3ac7d5 dbghelp: Implemented SymSearchW. 2006-05-11 12:18:46 +02:00
Eric Pouech
208e701a7b dbghelp: Implemented SymEnumSymbolsW. 2006-05-11 12:18:30 +02:00
Eric Pouech
08ba9cecff dbghelp: Stubbed SymGetSourceFileTokenW. 2006-05-11 12:17:23 +02:00
Eric Pouech
55f8a1b8fb dbghelp: Implemented SymGetLineFromAddrW64. 2006-05-11 12:17:03 +02:00