[PATCH 10/11] dbghelp: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM.
Ken Thomases
ken at codeweavers.com
Wed Jun 24 17:17:48 CDT 2015
---
dlls/dbghelp/dwarf.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index fa9e559..03eb43b 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -2629,7 +2629,7 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info*
/* parse the CIE first */
version = dwarf2_parse_byte(ctx);
- if (version != 1)
+ if (version != 1 && version != 3)
{
FIXME("unknown CIE version %u at %p\n", version, ctx->data - 1);
return FALSE;
@@ -2639,7 +2639,10 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info*
info->code_align = dwarf2_leb128_as_unsigned(ctx);
info->data_align = dwarf2_leb128_as_signed(ctx);
- info->retaddr_reg = dwarf2_parse_byte(ctx);
+ if (version == 1)
+ info->retaddr_reg = dwarf2_parse_byte(ctx);
+ else
+ info->retaddr_reg = dwarf2_leb128_as_unsigned(ctx);
info->state.cfa_rule = RULE_CFA_OFFSET;
end = NULL;
--
1.9.5 (Apple Git-50.3)
More information about the wine-patches
mailing list