From b96b71276e5078fc5c03fc6e077fab548f0d3e9a Mon Sep 17 00:00:00 2001 From: Zoran Zaric Date: Mon, 7 Dec 2020 19:00:26 +0000 Subject: [PATCH] Add frame info check to DW_OP_reg operations After enabling location description to be on a DWARF stack, it is now needed to check the frame context information validity when creating a register location description. gdb/ChangeLog: * dwarf2/expr.c (dwarf_expr_context::execute_stack_op): Add check_frame_info call for DW_OP_reg operations. Change-Id: I3e4a4d1eaba10b3b34be3c3bdbd1010a46ba4cd0 --- gdb/dwarf2/expr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c index 9f2c77197a6..ee3732a6d97 100644 --- a/gdb/dwarf2/expr.c +++ b/gdb/dwarf2/expr.c @@ -2972,6 +2972,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr, case DW_OP_reg30: case DW_OP_reg31: dwarf_expr_require_composition (op_ptr, op_end, "DW_OP_reg"); + ensure_have_frame (this->frame, "DW_OP_reg"); result = op - DW_OP_reg0; result_entry = entry_factory->create_register (result); @@ -2980,6 +2981,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr, case DW_OP_regx: op_ptr = safe_read_uleb128 (op_ptr, op_end, ®); dwarf_expr_require_composition (op_ptr, op_end, "DW_OP_regx"); + ensure_have_frame (this->frame, "DW_OP_regx"); result = reg; result_entry = entry_factory->create_register (reg); -- 2.47.2