Eric Pouech
9f3e8a515f
dbghelp: Use cpu from debuggee's modules rather than debugger's.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 21:00:57 +01:00
Eric Pouech
e8b195329e
dbghelp: Use module's cpu word size instead of sizeof(void*) or sizeof(DWORD_PTR).
...
This fixes a couple of wrong pointer size computation when debugging a
WoW64 process from a 64 bit debugger.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 21:00:57 +01:00
Eric Pouech
f83e647547
dbghelp/dwarf: Don't skip functions when their inlined flag comes from an abstract origin.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 17:10:45 +01:00
Eric Pouech
7bde153afe
dbghelp/dwarf: Store line numbers and file info for inlined functions.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:28:19 +02:00
Eric Pouech
1c5989465e
dbghelp: Make symt_add_func_line() last parameter an absolute address.
...
It used to be an offset to the start of function, but it's actually
stored as an absolute address afterwards. This avoids unnecessary
computations.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:27:41 +02:00
Eric Pouech
fb34c82ef8
dbghelp/dwarf: Store each subrange for an inlined function.
...
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
690c2e51bf
dbghelp/dwarf: Generate proper inline functions.
...
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
ecb91941b3
dbghelp/dwarf: Add current block as a field in dwarf2_subprogram_t.
...
Instead of passing it as a parameter in various subprogram related
functions.
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
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
066bb761cc
dbghelp: Add local scope information in struct process.
...
- make SymSetContext() generate this information
- let SymEnumSymboli() (when dealing with local symbols) use this
information instead of the stack frame
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:50 +02:00
Eric Pouech
7bc6eb9d25
dbghelp/dwarf: Properly handle error cases while computing frame_cfa.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-19 20:59:13 +02:00
Alexandre Julliard
8b58eca071
dbghelp: Use the bundled zlib.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:08:00 +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
2da1698312
dbghelp/dwarf: Correctly compute address of label.
...
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
9768ea5637
dbghelp/dwarf: Bump max supported version (by default) up to 4.
...
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
56969bc80e
dbghelp/dwarf: Fix incorrect WARN.
...
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
dd67b78ed3
dbghelp/dwarf: Add support for local variables with constant 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
0de0a80940
dbghelp/dwarf: Downgrade FIXME into WARN for empty range.
...
It happens to be generated for some inline functions, that we badly
support yet.
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
e039a28e3b
dbghelp/dwarf: Silence a couple of dwarf DIE's tag in load_one_debug_entry.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
d8c9171c78
dbghelp/dwarf: Added support for OP_call_frame_cfa.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
1ecd66200d
dbghelp/dwarf: Split dwarf2_virtual_unwind into two functions.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
eabeb1da5c
dbghelp/dwarf: Pass cuhead to loc_compute_frame.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
c2d1d76531
dbghelp/dwarf: Add support for DW_TAG_imported_unit.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
e5a1b8b334
dbghelp/dwarf: Add support for partial compilation units.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
e362ed8c28
dbghelp/dwarf: Fix a couple of parent/child mismatch.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00
Eric Pouech
15eb6a2560
dbghelp/dwarf: Handle C++ rvalue reference type as a reference.
...
As we don't handle C++ references yet, it'll be a pointer in the end.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:02:21 +02:00
Eric Pouech
79cd318b77
dbghelp/dwarf: Support more dwarf's TAG related to types in udt parsing.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:02:09 +02:00
Eric Pouech
88840187f5
dbghelp/dwarf: Added support for DW_TAG_subrange_type in various places.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:02:05 +02:00
Eric Pouech
44bcae3f8d
dbghelp/dwarf: Support enumeration as index type for arrays.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:02:00 +02:00
Eric Pouech
09d2a6cffb
dbghelp/dwarf: Added support for parsing dwarf's 3 restrict type TAG.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:01:52 +02:00
Eric Pouech
87485ea107
dbghelp/dwarf: Handle some Dwarf4 tweaks in high / low pc attributes.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:01:46 +02:00
Eric Pouech
23c325276b
dbghelp: Remove unneeded #include <limits.h>.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:01:03 +02:00
Eric Pouech
69d07126fe
dbghelp/dwarf: Properly detect base address selection in AT_ranges.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:00:59 +02:00
Eric Pouech
ab8fdb191c
dbghelp/dwarf: In DW_AT_ranges, the values are relative to the start of the CU.
...
And not the module, as most of the other addresses.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 19:00:34 +02:00
Eric Pouech
8547aac2dc
dbghelp/dwarf: When loading a DWZ alternate file, don't force loading of all debug_infos.
...
Can have huge performance impact: libgcc_s.so.8 load time decreased
from 40 seconds down to less than 1 second.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
dc0ac71f5a
dbghelp/dwarf: Add proper support for DW_FORM_GNU_ref_alt.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
d832d51c2c
dbghelp/dwarf: Add a helper to jump into another debug_info.
...
This helper takes into account that source and destination debug_info
can be in different dwarf units, and even different debug files (DWZ).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
def87b2aef
dbghelp/dwarf: No longer pas a unit context when parsing debug_info content.
...
Use debug_info's unit_context instead.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
87b70fb272
dbghelp/dwarf: Fold printing info about unit context when printing debug_info's.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
e804b0754f
dbghelp/dwarf: No longer pass a unit context to dwarf2_get_cpp_name.
...
Use debug_info's unit context instead.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
61af17e6cf
dbghelp/dwarf: No longer pass a parse context to dwarf2_find_attribute.
...
Use debug_info's unit context instead.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
517f614bc8
dbghelp/dwarf: Load the alternate dwarf file content as we do for a regular dwarf module.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
9f74ac4b3b
dbghelp/dwarf: Handle DW_FORM_GNU_strp_alt (string located in an alternate DWZ file).
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
16d6656163
dbghelp/dwarf: Store a potential link to an external DWZ file in the dwarf2 module's information.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Eric Pouech
0646e15665
winedbg: Show dwarf version(s) used for a module.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 22:06:55 +02:00
Eric Pouech
f7377e5e65
dbghelp/dwarf: Add reference for a DIE to its CU.
...
Dwarf4 (and GNU extensions) support following debug info in
a) different CU
b) different ELF/PE files
So add a field from debug_info into the parent context unit
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 22:06:47 +02:00
Eric Pouech
f0c9397459
dbghelp/dwarf: Detect out of section sibling DIE information.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 22:06:42 +02:00
Eric Pouech
34b06f873a
dbghelp/dwarf: Support DW_FORM_ref_addr in type DIE lookup using the new cross-CU DIE mechanisms.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 22:06:30 +02:00
Eric Pouech
8c22d665a8
dbghelp/dwarf: Add ability to get to a DIE in a different CU.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 22:06:25 +02:00