From: Zoran Zaric Date: Mon, 7 Dec 2020 19:00:08 +0000 (+0000) Subject: Move read_mem to dwarf_expr_context X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=abcb8a73df7b7056fad1526e935c1c9b702f6bdb;p=thirdparty%2Fbinutils-gdb.git Move read_mem to dwarf_expr_context Following the idea of merging the evaluators, the read_mem method can be moved from dwarf_expr_executor and dwarf_evaluate_loc_desc classes to their base class dwarf_expr_context. gdb/ChangeLog: * dwarf2/expr.c (dwarf_expr_context::read_mem): Move from dwarf_evaluate_loc_desc. * dwarf2/frame.c (dwarf_expr_executor::read_mem): Remove method. * dwarf2/loc.c (dwarf_evaluate_loc_desc::read_mem): Move to dwarf_expr_context. Change-Id: Ied28c2c0fc808fb5e41f9816df8ac731fa4ac2fa --- diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c index e6a9e877e43..a2aa9435a2b 100644 --- a/gdb/dwarf2/expr.c +++ b/gdb/dwarf2/expr.c @@ -263,6 +263,15 @@ dwarf_expr_context::dwarf_call (cu_offset die_cu_off) this->eval (block.data, block.size); } +/* See expr.h. */ + +void +dwarf_expr_context::read_mem (gdb_byte *buf, CORE_ADDR addr, + size_t length) +{ + read_memory (addr, buf, length); +} + /* Require that TYPE be an integral type; throw an exception if not. */ static void diff --git a/gdb/dwarf2/expr.h b/gdb/dwarf2/expr.h index e3e8bf8ae53..3c40dde13da 100644 --- a/gdb/dwarf2/expr.h +++ b/gdb/dwarf2/expr.h @@ -196,7 +196,7 @@ struct dwarf_expr_context CORE_ADDR obj_address; /* Read LENGTH bytes at ADDR into BUF. */ - virtual void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t length) = 0; + virtual void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t length); /* Push on DWARF stack an entry evaluated for DW_TAG_call_site's parameter matching KIND and KIND_U at the caller of specified BATON. diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c index 96bfdc14521..46f3f5145db 100644 --- a/gdb/dwarf2/frame.c +++ b/gdb/dwarf2/frame.c @@ -231,11 +231,6 @@ public: : dwarf_expr_context (per_objfile) {} - void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) override - { - read_memory (addr, buf, len); - } - void push_dwarf_reg_entry_value (enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, int deref_size) override diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index c1f5457e1de..679852c81bf 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -686,13 +686,6 @@ public: this->eval (data_src, size); } - - /* Read memory at ADDR (length LEN) into BUF. */ - - void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) override - { - read_memory (addr, buf, len); - } }; /* See dwarf2loc.h. */