Commit graph

1405 commits

Author SHA1 Message Date
Eric Pouech 75fd446272 dbghelp: Add tests about modules loading.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-02-06 22:34:44 +01:00
Eric Pouech 7de1284b59 dbghelp: Stop unwinding on potential 64bit frame for i386 cpu.
Transform potential error on 32 => 64 bit transition with
end of stack (needed in new wow64 for dbghelp's stackwalk tests).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-02-06 22:34:44 +01:00
Eric Pouech cda616d8ca winedump: Properly dump segment map information from PDB/DBI stream.
Changing field names to match better their content.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-02-02 10:58:21 +01:00
Eric Pouech cf71edaa4e winedump: Dump correctly ranges part of DBI stream.
The ranges describe for a PE image all the contributions
of each compilation unit towards the various sections.

Renaming offset_size into ranges_size which is closer to its actual content.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-02-02 10:58:07 +01:00
Eric Pouech 9a74d2b62f include: Use stream to denote MSF stream/file.
Try to apply consistent naming:
- file refers to (PDB) file
- stream refers to a stream/file inside the PDB stream at MSF level
(we were also using file for the later, which isn't very simple to
follow).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-31 22:29:07 +01:00
Eric Pouech 26f89d84e2 include: Consistenly use _size to name the size of a sub-block.
We were using either _size or _len depending on which one.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-31 22:29:05 +01:00
Eric Pouech 71abef0906 include: Be consistent in naming regarding MSF's block.
No longer calling it sometimes 'page'.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-31 22:29:00 +01:00
Alex Henrie 7a441eafb4 dbghelp: Handle memory allocation failure in image_locate_build_id_target (cppcheck). 2023-01-24 22:12:36 +01:00
Eric Pouech ad21db2e1e dbghelp: Don't use dbghelp_current_cpu.
It's bound to debugger's CPU not debuggee's.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 20:14:52 +01:00
Eric Pouech 85fb74a672 dbghelp: In dwarf debug info, use the same name of anonymous UDT as pdb.
It's hard coded by msvc in PDB information, so adapt dwarf to advertize
the same.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 20:14:52 +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
Ake Rehnman 70b8461bef dbghelp: Store path to module image when passed through file handle.
Co-authored-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 18:25:54 +01:00
Eric Pouech 168c7a475d dbghelp: Don't search path when we have a file handle to loaded image.
When the handle to the loaded module is passed in SymLoadModule*(),
don't try to search for the module's image path and use only the file
handle.

Co-authored-by: Ake Rehnman <ake.rehnman@gmail.com>
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-24 18:24:09 +01:00
Alex Henrie 04225e1109 dbghelp: Annotate allocation functions with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC). 2022-12-06 17:04:50 +01:00
Alex Henrie a6218a8145 include: Move wdbgexts.h from dbghelp to include.
This file is a public header in the Windows SDK.
2022-12-05 20:04:54 +01:00
Eric Pouech fbf2301177 dbghelp: Fix typos in codeview_is_type_forward().
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-22 21:51:26 +01:00
Eric Pouech 4119430e57 dbghelp: Locate alternate debug info files by their build id.
(including debuginfo client cache)

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-21 18:03:53 +01:00
Eric Pouech b718fbc31f dbghelp: Search debug info files into local cache of debuginfod.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-21 18:03:53 +01:00
Eric Pouech 69108af654 dbghelp: Convert of couple more of string literals.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-21 18:03:53 +01:00
Eric Pouech b6205f57fa dbghelp: Add partial implementation of SymQueryInlineTrace.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-18 14:11:50 +01:00
Eric Pouech c99bafb775 dbghelp: Implement SymAddrIncludeInlineTrace().
Replacing symt_get_inlinesite_depth() with SymAddrIncludeInlineTrace()
as they look very (very) similar.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-18 14:11:50 +01:00
Mohamad Al-Jaf 51c81714f2 dbghelp: Add SymAddrIncludeInlineTrace stub.
Football Manager 2023 Editor calls this function.

Signed-off-by: Mohamad Al-Jaf <mohamadaljaf@gmail.com>
2022-11-18 14:11:47 +01:00
Eric Pouech dcbb145658 dbghelp: Function static variables should be found by address.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-18 14:04:28 +01:00
Eric Pouech f763332b93 dbghelp: Create a single compiland instance by name in PDB.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-18 14:00:04 +01:00
Eric Pouech e37f1ada64 dbghelp: Use same compiland's pathname as native (PDB).
In PDB debug information, compiland's pathname is stored twice:
- both refer to the same file, but with variations in path handling
  (eg: one could be foo1\foo2\bar.obj and the other
   foo1\deadbeef\..\foo2\bar.obj)

Use same pathname string as native when storing compiland's pathname
(it eases comparison of dumps between the two).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-18 14:00:04 +01:00
Eric Pouech de3a836629 dbghelp: Fix handling of BA_OP_ChangeCodeLength (PDB).
This op is heavily used by clang with PDB debug info, while
MSVC barely uses it.

This fixes a bunch of problems when loading PDB files generated
by clang (eg. the PDB files from wine-gecko).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-17 16:35:54 +01:00
Eric Pouech 1ed24f7ec6 dbghelp: Support loading modules from Wine's multi-arch build tree.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-09 21:23:48 +01:00
Eric Pouech 31e76b5333 dbghelp: Introduce a helper for module lookup.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-09 21:23:48 +01:00
Eric Pouech e6fd3021ba dbghelp: Added missing DECLSPEC_HIDDEN attribute.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-09 21:23:48 +01:00
Eric Pouech c4f1f5b185 dbghelp: Get rid of symt_inlinesite by merging it inside symt_function.
Basically:
- extending symt_function to enable storage of multiple address ranges
- symt_function and sym_inlinesite now share the same fields, so
  get rid to the later.

Note that only the first range of a top level function is actually
stored and used (even if the structure allows for more).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-01 17:53:57 +01:00
Eric Pouech 790a2852aa dbghelp: Use addr_range for storing symt_function address and size.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-01 17:53:57 +01:00
Eric Pouech c576b0c73f dbghelp: Store address range as FAM in symt_inlinesite.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-01 17:53:57 +01:00
Eric Pouech a6f1f7be7e dbghelp: No longer pass inline site's address upon creation.
Instead use the first address of the first defined range of address.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-01 17:53:51 +01:00
Eric Pouech 363f1f49a8 dbghelp: Realloc array of buckets inside struct vector.
Instead of silently leaking no longer used chunks.
Be more robust to OOM conditions.
Introducing pool_realloc().

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-21 23:18:06 +02:00
Eric Pouech c5f4874e7b dbghelp: Use heap functions for allocation.
Create a dedicated heap for each module (as it was done for the
private home grown pools).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-21 23:18:06 +02:00
Francois Gouget 0eb40cdbd0 dbghelp: Fix the spelling of a couple of comments. 2022-10-20 20:58:06 +02:00
Francois Gouget 5bd74d0e58 dbghelp: Fix the trailing linefeed of a WARN() message. 2022-10-20 20:58:06 +02:00
Eric Pouech 0c3d78269f dbghelp: Silence some FIXMEs.
In some 32bit modules, MingW/GCC generates in Dwarf debug information,
a cfa address to be computed as:
   deref(register XX + offset)
which is too complicated to be expressed through regular DbgHelp APIs.

So silence the FIXME, and report a 'too complex' error (instead of
'internal').

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52790
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-19 21:08:03 +02:00
Eric Pouech 3dee69106a dbghelp: Allow symt_block to be defined over non contiguous chunks.
This improves correctness of functions like SymFromAddr()
when searching local variables.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-19 21:07:27 +02:00
Eric Pouech eb820b37c9 dbghelp: No longer call read_range() for inline site (dwarf).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-19 21:07:27 +02:00
Eric Pouech aa29948966 dbghelp: Rework dwarf2_get_ranges() helper.
- split in two sub helpers (one to get size, the other to fill content in)
  (this avoids reallocating buffer)
- return error in case no range is present (but range dwarf attribute is)

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-19 21:07:20 +02:00
Eric Pouech 1bcdb17455 dbghelp: Remove symt_close_func_block() stabs's only parameter.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-10 11:11:21 +02:00
Eric Pouech 6f8ba8119a dbghelp: Keep compiland's address for Dwarf debug format.
Partly reverting 99eb63bd7a
(it's still needed on Dwarf for blocks with multiple
non-contiguous address ranges).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-10 11:11:15 +02:00
Eric Pouech 96c3f58783 dbghelp: Silence some FIXME for SymGetTypeInfo/TI_GET_OFFSET.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-10 11:11:15 +02:00
Eric Pouech 106a056c99 dbghelp: No longer use wine_dbgstr_longlong.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-10-10 11:11:15 +02:00
Eric Pouech b990eaa8a6 dbghelp: Expose local static variables' address.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-30 21:20:19 +02:00
Eric Pouech 99eb63bd7a dbghelp: Remove address field from symt_compiland.
It's mostly always set at 0, and native dbghelp doesn't expose it anyway.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-30 21:20:09 +02:00
Eric Pouech 50dc4ad0bf dbghelp: SymFromName* should first look in local context.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-29 16:02:56 +02:00
Eric Pouech 1c5eadb482 dbghelp: Improve de-duping global symbols information (PDB).
We have dups in global / file static variables definition:
- between compiland stream and global (DBI) stream
  (we need to de-dup these)
- still adding variables only present global DBI stream
- keeping in mind, we need to keep:
  + two variables of different names at same address (aliasing)
  + variables of same name at different addresses
    (MS linker generate those)

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-28 15:28:58 +02:00
Eric Pouech 908004c3a9 dbghelp: Don't load invalid records for global symbol stream.
Only load records that are listed in global hash file when handling
the global symbol stream.
Do the same thing for the public symbols.

When using MS linker in incremental mode:
- old variable definitions are kept in the (DBI) global symbol stream
  along side the new definition
- but only the latest (valid) definition is referenced from the hash
  table

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-28 15:28:56 +02:00
Eric Pouech 108cd66933 dbghelp: Fix variable storage information (Dwarf).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-28 15:28:56 +02:00
Eric Pouech 0e345d6c43 dbghelp: Fix container for global variables (Dwarf).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-28 15:28:56 +02:00
Eric Pouech a523361b10 dbghelp: Add support for static variables at function scope (PDB).
These should be stored in function's children vector.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-28 15:28:53 +02:00
Eric Pouech 805ffc8adb winedump: Dump global hash table out of PDB symbols' stream.
Introduce relevant structures in include/wine/msvcpdb.h.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-27 18:29:27 +02:00
Eric Pouech 25108ba266 dbghelp: Fix local scope reset upon module unloading.
Change strategy for resetting local scope when unloading a module.
Old strategy was keeping the local scoped symbol alive on some code path when
unloading a module.
This caused some bad behavior as we kept a pointer to a deleted object.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-26 21:49:54 +02:00
Eric Pouech 6424b9d6b7 dbghelp: Store all address ranges for inline sites.
Store all the internal address ranges for an inline site
(as we already do in dwarf debug info).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-13 22:07:22 +02:00
Eric Pouech cffdaabbc9 dbghelp: Support depth relating to top function for inline sites.
When using an inline context which depth points towards the top level function
(so when it's not strictly speaking an inline context), native falls
back to picking information in the top level function.

So we do now in SymSetScopeFromInlineContext() and SymFromInlineContext()
(instead of returning an error).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-13 22:07:22 +02: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
Eric Pouech 553798224d dbghelp: Displacements are optional.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-12 17:28:23 +02:00
Eric Pouech d1f7bc7c05 dbghelp: Support SymGetTypeInfo/TI_GET_LENGTH for variables.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-12 17:28:23 +02:00
Eric Pouech 12f2a1768c dbghelp: Correctly handle the absence of IPI stream.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-12 17:28:23 +02:00
Eric Pouech 1c5491555b dbghelp: Harden reading strings from string table.
Making use of PDB_STRING_TABLE.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-09-12 17:28:23 +02:00
Francois Gouget b25b2ed31a dbghelp: Fix a couple of spelling errors in a comment. 2022-08-30 22:00:55 +02:00
Francois Gouget 188e8988ab dbghelp: Fix the spelling of a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
2022-07-18 19:44:12 +02:00
Eric Pouech fe52589cdd dbghelp: Set constants lexical parent to module when no compiland is present.
Especially needed for enumeration's values.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech 9cb69964d6 dbghelp: Member's lexical parent is module (not parent UDT).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech a5c6cd5aef dbghelp: Only reply to offset requests on symt_data in SymGetTypeInfo() for locals and parameters.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech d2a5f434c4 dbghelp: Create lexical relationship between global vars and symt_module.
Global (non static) variables are now stored in symt_module.
(static variables are stored in symt_compiland).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech 87e2b00774 dbghelp: Don't include global & static variables from S_LOCAL* records.
PDB supports description of a global or static variable:
- accessed from a register
- stored as a local variable record inside a function

This likely describes access to a global/static variable where
intermediate computation is kept in a register.

We cannot store this kind of entries in local variable lists
(builtin dbghelp and winedbg are not prepared to handle a global variable)

Note: the global or static Codeview data record is still present (with a
relocatable address), so the variable should still be available from global
access (but could be not up-to-date if temporarly stored in a register).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech 437e73883b mscvpdb.h: Use bitfield for defrange's variable flag.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech bf68ec1f8a dbghelp: Silence a couple of FIXMEs in SymGetTypeInfo().
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-07-12 22:51:29 +02:00
Eric Pouech bb52ed3532 dbghelp/msc: Support LF_INDEX* in enumeration type definition.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-29 23:23:41 +02:00
Eric Pouech 29dd844439 dbghelp: Use remap table from PDB hash stream.
The PDB hash stream from TPI header contains information to force a remap
to a given type record (whatever the order in the bucket hash list).
This is generated by the incremental linker in some occasions.

Use that information to remap the corresponding types.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-28 20:30:05 +02:00
Eric Pouech d12d5c7245 dbghelp: Preserve PDB's partial order for types of same name.
The PDB types can contain several times a type definition with an identical
name. It seems to appear when modifying a type in source (like adding new
fields to a struct):
- as the PDB file (generated from first compilation) is updated (and not
  fully rewritten), the debug information for the old type is not flushed;
  a new record (for the same struct name) is emitted, and inserted
  before the old one in the hash table (bucket list).

Even if dbghelp's hash table is different from PDB's internal one (ie
number of buckets & bucket lists are different), we must maintain the order
of records of identical names (they end up in the same bucket) as a lookup
by name *must* return the first record in PDB's order.
Lookup by name is used:
- when resolving a forward definition (to get the full UDT definition
  including for example a struct/class fields's list)
- when searching by type name from dbghelp APIs, like SymGetTypeFromName()

This patch implements the preservation of that order.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-28 20:30:05 +02:00
Eric Pouech ddbd341bd0 dbghelp: Clearly separate the type loading into two passes.
- create (contentless) UDT & enum in first pass
- fill UDT&enum content and load the rest of types in second pass.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-28 20:30:05 +02:00
Eric Pouech eb14fad72a mscvpdb.h: Redefine property with bitfields.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-28 20:30:05 +02:00
Eric Pouech b7c231c78f dbghelp: Rely on first/last type index from type header.
Code now follows these guidelines:
- define PDB & Codeview internals in cvconst.h and mscvinfo.h (instead
  of having definitions in .c files, some of them being duplicate of .h
  content, and their "duplicate" values eventually diverged over time)
- index of first type comes from PDB type header (instead of always being
  hardcoded as FIRST_DEFINABLE_TYPE)
- use index of last typex from type header (instead of guessing the right
  value while parsing types, which also allows a single allocation
  instead of enlarging buffer while parsing).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-28 20:30:05 +02:00
Eric Pouech ba12b5ae88 winedump: Explore a bit more TPI hash elements.
Rename a couple of fields in PDB structures for clarity.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-06-28 20:24:18 +02:00
Eric Pouech 5aa9340c3d dbghelp: Set correct basic types definition.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 22:11:41 +02:00
Eric Pouech d94f4747e8 dbghelp: Fix conversion of dwarf's basic types into dbghelp's basic types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 22:11:41 +02:00
Eric Pouech 14462bbeab dbghelp: Let symt_basic be trans-module and nameless.
Rationale:
- native doesn't report names for SymTagBaseType objects
  => so remove typename for sym_basic
- since symt_basic becomes pretty simple, it's possible to share the object
  across all modules loaded in dbghelp (simplicity, memory usage reduction)
- removed dwarf basic types cache in dwarf.c as we now have a generic one

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 22:11:41 +02:00
Jactry Zeng 22ea4cd29e dbghelp: Use RtlGetVersion() for system version detection instead.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 09:58:26 +02:00
Eric Pouech 99c7818097 dbghelp: Introduce symt_find_symbol_at().
To be used in place of symt_find_nearest().
symt_find_symbol_at() ensures that the address passed is within the
boundaries of the returned symbol (while find_nearest() doesn't).

This fixes erroneous backtraces in debugger like:
$ ./wine winedbg notepad
WineDbg starting on pid 0104
RtlDefaultNpAcl () at Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731
0x00000170054805 ntdll+0x54805 [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731]: ret
1731    }
Wine-dbg>bt
Backtrace:
=>0 0x00000170054805 RtlDefaultNpAcl+0x2d5(pAcl=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731] in ntdll (0x000001700701a4)
  1 0x0000017002d6c4 __wine_pop_frame(pAcl=<internal error>) [Z:\home\eric\work\wine\include\wine\exception.h:273] in ntdll (0x000001700701a4)
  2 0x0000017002d6c4 process_breakpoint+0x84() [Z:\home\eric\work\wine\dlls\ntdll\loader.c:3912] in ntdll (0x000001700701a4)
  3 0x000001700354c9 LdrInitializeThunk+0x509(context=<register R13 not accessible in this frame>, unknown2=<internal error>, unknown3=<internal error>, unknown4=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\loader.c:4200] in ntdll (0x000001700701a4)

where RtlDefaultNpAcl() has nothing to do here (it's the symbol below RIP
and we don't have a symbol with debug information for that address).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-04 21:27:25 +02:00
Eric Pouech 4643bb2852 dbghelp: Properly fail on PDB files generated by MSVC compiler version 14.31.
Some internal bits of PDB files are different, so report & abort loading of
such PDB file until it's properly understood & supported (instead of
crashing).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-03 20:27:42 +02:00
Alexandre Julliard 53ab4c5385 include: Avoid Windows types in CodeView structure definitions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 16:01:54 +02:00
Austin English 8d3ca2130a dbghelp: Downgrade a FIXME to a WARN.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52790
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-14 09:27:46 +02:00
Eric Pouech 4d7eccd616 dbghelp: Trace 64-bit integers with I64 width modifier.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-08 11:50:06 +02:00
Eric Pouech 56681b5314 dbghelp/tests: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-24 20:22:21 +01:00
Francois Gouget 9be9c32781 dbghelp: Fix the spelling and tweak the wording of a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 22:10:47 +01:00
Eric Pouech a64d157928 dbghelp: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:32 +01:00
Alex Henrie 950792ae2b dbghelp: Fix memory leak on error path in dwarf2_read_range (cppcheck).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-02 18:43:10 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Eric Pouech 00a11ff73d dbghelp: Don't use .debug_frame section if non present when unwinding.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52295
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-03 14:50:29 +01:00
Eric Pouech 6c64e6dee4 dbghelp: Silence some FIXMEs.
Reading gecko's PDB generate a lot of those.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 20:29:38 +01:00
Alistair Leslie-Hughes e19b18dd82 dbghelp: Fix use after free.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-13 18:02:58 +01: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
Alistair Leslie-Hughes 33308a577c dbghelp: Fix possible memory leak (Coverity).
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 17:14:59 +01:00
Eric Pouech fdc48ba767 dbghelp: In SymGetTypeInfo(), return the correct basetype for enums.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 22:14:44 +01:00
Alexandre Julliard c210a0e607 mountmgr: Return a Unix file name in the IOCTL_MOUNTMGR_QUERY_SYMBOL_FILE request.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-26 18:07:30 +01:00
Eric Pouech 9f1766193e dbghelp: Simplify code for searching alternate debug info files.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-22 22:20:50 +01:00