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>
stable
Chip Davis 2020-01-11 15:06:58 -06:00 committed by Alexandre Julliard
parent 8341b51bf6
commit 8000b5415d
1 changed files with 3 additions and 1 deletions

View File

@ -3516,7 +3516,9 @@ BOOL dwarf2_parse(struct module* module, unsigned long load_offset,
BOOL ret = TRUE;
struct module_format* dwarf2_modfmt;
dwarf2_init_section(&eh_frame, fmap, ".eh_frame", NULL, &eh_frame_sect);
if (!dwarf2_init_section(&eh_frame, fmap, ".eh_frame", NULL, &eh_frame_sect))
/* lld produces .eh_fram to avoid generating a long name */
dwarf2_init_section(&eh_frame, fmap, ".eh_fram", NULL, &eh_frame_sect);
dwarf2_init_section(&section[section_debug], fmap, ".debug_info", ".zdebug_info", &debug_sect);
dwarf2_init_section(&section[section_abbrev], fmap, ".debug_abbrev", ".zdebug_abbrev", &debug_abbrev_sect);
dwarf2_init_section(&section[section_string], fmap, ".debug_str", ".zdebug_str", &debug_str_sect);