diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2020-05-27 11:14:01 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-05-27 11:15:57 -0400 |
commit | 4b167ea1a0f1ff6f02684556e951dab8d48b9fa4 (patch) | |
tree | 402be28767b0f35204af185c1b672c597c64d548 /gdb/compile | |
parent | 89b07335fe42d6da84c19351ca0c34b11a3c4f8e (diff) | |
download | gdb-4b167ea1a0f1ff6f02684556e951dab8d48b9fa4.zip gdb-4b167ea1a0f1ff6f02684556e951dab8d48b9fa4.tar.gz gdb-4b167ea1a0f1ff6f02684556e951dab8d48b9fa4.tar.bz2 |
Remove dwarf2_per_cu_data::text_offset
This method simply returns the text offset of the objfile associated to
the dwarf2_per_cu_data object. Since dwarf2_per_cu_data objects are
going to become objfile-independent, we can't keep this method. This
patch removes it.
Existing callers need to figure out the in the context of which objfile
this is being used, and call text_offset on it. Typically, this comes
from a symbol baton, where we store the corresponding
dwarf2_per_objfile.
gdb/ChangeLog:
* dwarf2/read.h (struct dwarf2_per_cu_data) <text_offset>:
Remove.
* dwarf2/read.c (dwarf2_per_cu_data::text_offset): Remove.
* dwarf2/loc.c (dwarf2_find_location_expression): Update.
(dwarf2_compile_property_to_c): Update.
(dwarf2_compile_expr_to_ax): Add dwarf2_per_objfile parameter,
use text offset from objfile.
(locexpr_tracepoint_var_ref): Update.
(locexpr_generate_c_location): Update.
(loclist_describe_location): Update.
(loclist_tracepoint_var_ref): Update.
* dwarf2/compile.h (compile_dwarf_bounds_to_c): Add
dwarf2_per_objfile parameter.
* dwarf2/loc2c.c (do_compile_dwarf_expr_to_c): Likewise,
use text offset from objfile.
(compile_dwarf_expr_to_c): Add dwarf2_per_objfile parameter.
Change-Id: I56b01ba294733362a3562426a96d48ae051a776f
Diffstat (limited to 'gdb/compile')
-rw-r--r-- | gdb/compile/compile-loc2c.c | 20 | ||||
-rw-r--r-- | gdb/compile/compile.h | 13 |
2 files changed, 23 insertions, 10 deletions
diff --git a/gdb/compile/compile-loc2c.c b/gdb/compile/compile-loc2c.c index 06a044d..2fd1810 100644 --- a/gdb/compile/compile-loc2c.c +++ b/gdb/compile/compile-loc2c.c @@ -583,7 +583,8 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, CORE_ADDR *initial, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile) { /* We keep a counter so that labels and other objects we create have unique names. */ @@ -719,7 +720,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, index, not an address. We don't support things like branching between the address and the TLS op. */ if (op_ptr >= op_end || *op_ptr != DW_OP_GNU_push_tls_address) - uoffset += per_cu->text_offset (); + uoffset += per_objfile->objfile->text_section_offset (); push (indent, stream, uoffset); break; @@ -896,7 +897,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, sym, pc, arch, registers_used, addr_size, datastart, datastart + datalen, - NULL, per_cu); + NULL, per_cu, per_objfile); pushf (indent, stream, "%s + %s", fb_name, hex_string (offset)); } @@ -1077,7 +1078,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, sym, pc, arch, registers_used, addr_size, cfa_start, cfa_end, - &text_offset, per_cu); + &text_offset, per_cu, per_objfile); pushf (indent, stream, "%s", cfa_name); } } @@ -1123,11 +1124,12 @@ compile_dwarf_expr_to_c (string_file *stream, const char *result_name, struct gdbarch *arch, unsigned char *registers_used, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile) { do_compile_dwarf_expr_to_c (2, stream, GCC_UINTPTR, result_name, sym, pc, arch, registers_used, addr_size, op_ptr, op_end, - NULL, per_cu); + NULL, per_cu, per_objfile); } /* See compile.h. */ @@ -1140,9 +1142,11 @@ compile_dwarf_bounds_to_c (string_file *stream, struct gdbarch *arch, unsigned char *registers_used, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile) { do_compile_dwarf_expr_to_c (2, stream, "unsigned long ", result_name, sym, pc, arch, registers_used, - addr_size, op_ptr, op_end, NULL, per_cu); + addr_size, op_ptr, op_end, NULL, per_cu, + per_objfile); } diff --git a/gdb/compile/compile.h b/gdb/compile/compile.h index 871031c..73f714a 100644 --- a/gdb/compile/compile.h +++ b/gdb/compile/compile.h @@ -21,6 +21,7 @@ struct ui_file; struct gdbarch; struct dwarf2_per_cu_data; +struct dwarf2_per_objfile; struct symbol; struct dynamic_prop; @@ -53,6 +54,9 @@ extern void eval_compile_command (struct command_line *cmd, OPT_PTR and OP_END are the bounds of the DWARF expression. PER_CU is the per-CU object used for looking up various other + things. + + PER_OBJFILE is the per-objfile object also used for looking up various other things. */ extern void compile_dwarf_expr_to_c (string_file *stream, @@ -64,7 +68,8 @@ extern void compile_dwarf_expr_to_c (string_file *stream, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, - struct dwarf2_per_cu_data *per_cu); + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile); /* Compile a DWARF bounds expression to C, suitable for use by the compiler. @@ -88,6 +93,9 @@ extern void compile_dwarf_expr_to_c (string_file *stream, OPT_PTR and OP_END are the bounds of the DWARF expression. PER_CU is the per-CU object used for looking up various other + things. + + PER_OBJFILE is the per-objfile object also used for looking up various other things. */ extern void compile_dwarf_bounds_to_c (string_file *stream, @@ -99,7 +107,8 @@ extern void compile_dwarf_bounds_to_c (string_file *stream, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, - struct dwarf2_per_cu_data *per_cu); + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile); extern void compile_print_value (struct value *val, void *data_voidp); |