diff options
author | Alan Modra <amodra@gmail.com> | 2013-03-10 23:08:18 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2013-03-10 23:08:18 +0000 |
commit | dc3714f31f5b15f9c078dcf7ddaa705dacd313c0 (patch) | |
tree | 29717f9ed43f8fa606369975acac03a8e719c056 /gold/symtab.cc | |
parent | 3bcc5422890014bfa8f8602d3c680c29a3384c29 (diff) | |
download | gdb-dc3714f31f5b15f9c078dcf7ddaa705dacd313c0.zip gdb-dc3714f31f5b15f9c078dcf7ddaa705dacd313c0.tar.gz gdb-dc3714f31f5b15f9c078dcf7ddaa705dacd313c0.tar.bz2 |
* gold.cc (queue_middle_tasks): Move detect_odr_violations..
* layout.cc (Layout_task_runner::run): ..to here.
* symtab.h (struct Symbol_location): Extract from..
(class Symbol_table): ..here.
* symtab.cc (Symbol_table::linenos_from_loc): Invoke function_location.
* target.h (class Target): Add function_location and
do_function_location functions.
(class Sized_target): Add do_function_location.
* object.h (class Sized_relobj_file): Move find_shdr..
(class Object): ..to here.
* object.cc: Likewise. Update to suit. Instantiate.
(Sized_relobj_file::find_eh_frame): Update find_shdr call.
* powerpc.cc (class Powerpc_dynobj): New.
(Target_powerpc::do_function_location): New function.
(Powerpc_relobj::do_find_special_sections): Update find_shdr call.
(Powerpc_dynobj::do_read_symbols): New function.
(Target_powerpc::do_make_elf_object): Make a Powerpc_dynobj.
Diffstat (limited to 'gold/symtab.cc')
-rw-r--r-- | gold/symtab.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc index 8fadd1d..1fad11e 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -3175,9 +3175,11 @@ Symbol_table::linenos_from_loc(const Task* task, Task_lock_obj<Object> tl(task, loc.object); std::vector<std::string> result; + Symbol_location code_loc = loc; + parameters->target().function_location(&code_loc); // 16 is the size of the object-cache that one_addr2line should use. std::string canonical_result = Dwarf_line_info::one_addr2line( - loc.object, loc.shndx, loc.offset, 16, &result); + code_loc.object, code_loc.shndx, code_loc.offset, 16, &result); if (!canonical_result.empty()) result.push_back(canonical_result); return result; |