Commit 500df921 authored by Ken Thomases's avatar Ken Thomases Committed by Alexandre Julliard

dbghelp: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM.

parent 0bfa1145
...@@ -2629,7 +2629,7 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info* ...@@ -2629,7 +2629,7 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info*
/* parse the CIE first */ /* parse the CIE first */
version = dwarf2_parse_byte(ctx); 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); FIXME("unknown CIE version %u at %p\n", version, ctx->data - 1);
return FALSE; return FALSE;
...@@ -2639,7 +2639,10 @@ static BOOL parse_cie_details(dwarf2_traverse_context_t* ctx, struct frame_info* ...@@ -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->code_align = dwarf2_leb128_as_unsigned(ctx);
info->data_align = dwarf2_leb128_as_signed(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; info->state.cfa_rule = RULE_CFA_OFFSET;
end = NULL; end = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment