Commit graph

102 commits

Author SHA1 Message Date
Alexandre Julliard 03ce134d6f dbghelp: Use nameless union/structs. 2023-07-05 17:03:30 +02: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 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 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 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 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 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 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
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 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
Eric Pouech ec0af6dc3e dbghelp: Silence a couple of C++ oriented requests in SymGetTypeInfo().
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:28:32 +02:00
Eric Pouech b9290c987a dbghelp: Introduce symt_inlinesite (SymTagInlineSite) to support inline sites.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-28 18:25:16 +02:00
Eric Pouech 2f093aef26 dbghelp: Handle some more error conditions in SymGetTypeInfo().
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-19 20:55:45 +02:00
Eric Pouech 099a8bbfd3 dbghelp: Add helper to initialize a module_pair.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 22:52:25 +02:00
Eric Pouech 58d5b3c880 dbghelp: Use proper macros for VARIANT.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 22:52:25 +02:00
Eric Pouech b6044788ea dbghelp: Added support for custom symbols.
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 841083898b dbghelp: Handle address of labels not included in functions.
(MASM generate those)

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 94abe0761e dbghelp: Report once FIXME of unsupported requests in SymGetTypeInfo().
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 2716e20438 dbghelp: Return SymTagExe when requesting lexical parent of SymTagPublicSymbol in SymGetTypeInfo().
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 f2fbf59246 dbghelp: Return lexical parent of SymTag(FuncDebugStart|FuncDebugEnd|Label) in SymGetTypeInfo().
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 507a3ef304 dbghelp: Return SymTagExe when requesting lexical parent of types in SymGetTypeInfo().
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 f3107eb095 dbghelp: Return error when requesting SymTagLabel's size in SymGetTypeInfo().
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 dd572227cb dbghelp: Silence FIXMEs in SymGetTypeInfo().
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 a4ebfe8c76 dbghelp: Expose no children in SymGetTypeInfo() for some SymTags.
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 dbcc714cef dbghelp: SymTagFunctionArgType's lexical parent is module, not SymTagFunctionType.
(as any other type)

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
Eric Pouech 11d8338f7a dbghelp: Expose SymTagBlock's address and size in SymGetTypeInfo().
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 4540d4f492 dbghelp: Expose SymTagBlock's children in SymGetTypeInfo().
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 4bf83f21ca dbghelp: Silence FIXME when requesting SymTagExe lexical parent in SymGetTypeInfo().
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 24a7de70a6 dbghelp: Manage parent/child relationship between SymTagExe and SymTagCompiland.
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 8e50fea66b dbghelp: Expose compiland's children in SymGetTypeInfo().
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 15d526d81e dbghelp: Don't expose SymTagExe or SymTagCompiland's address nor length in SymGetTypeInfo().
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 dec1e46d01 include/cvconst.h: Add enumeration for newest SymTag values.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-28 21:48:59 +02:00
Eric Pouech c031d5aa8c dbghelp: Use correct parameter name.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-10 20:22:11 +02:00
Eric Pouech b9ebb3fb62 dbghelp: Use module->modulename instead of module->module.ModuleName in traces.
The former is truncated to 64 chars while the latter is truncated to
32 chars.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 17:58:29 +02:00
Eric Pouech 35c45857ae dbghelp: Tidy up internals for array type.
Mainly remove hackish storage of information with negative value and
use a uniform min/count pair for all debug formats.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 21:21:49 +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 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
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