X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fstap-probe.c;h=73596446cce51d94e789b1ff3584b8fec807b5a1;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=39da2900e7af30d0c24702019c8b835038b0b646;hpb=4212d5091457541bd7e7eff0591805ef7b7333e3;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c index 39da2900e7..73596446cc 100644 --- a/gdb/stap-probe.c +++ b/gdb/stap-probe.c @@ -1290,8 +1290,7 @@ stap_probe::parse_arguments (struct gdbarch *gdbarch) static CORE_ADDR relocate_address (CORE_ADDR address, struct objfile *objfile) { - return address + ANOFFSET (objfile->section_offsets, - SECT_OFF_DATA (objfile)); + return address + objfile->data_section_offset (); } /* Implementation of the get_relocated_address method. */ @@ -1431,9 +1430,6 @@ stap_modify_semaphore (CORE_ADDR address, int set, struct gdbarch *gdbarch) struct type *type = builtin_type (gdbarch)->builtin_unsigned_short; ULONGEST value; - if (address == 0) - return; - /* Swallow errors. */ if (target_read_memory (address, bytes, TYPE_LENGTH (type)) != 0) { @@ -1467,6 +1463,8 @@ stap_modify_semaphore (CORE_ADDR address, int set, struct gdbarch *gdbarch) void stap_probe::set_semaphore (struct objfile *objfile, struct gdbarch *gdbarch) { + if (m_sem_addr == 0) + return; stap_modify_semaphore (relocate_address (m_sem_addr, objfile), 1, gdbarch); } @@ -1475,6 +1473,8 @@ stap_probe::set_semaphore (struct objfile *objfile, struct gdbarch *gdbarch) void stap_probe::clear_semaphore (struct objfile *objfile, struct gdbarch *gdbarch) { + if (m_sem_addr == 0) + return; stap_modify_semaphore (relocate_address (m_sem_addr, objfile), 0, gdbarch); } @@ -1517,7 +1517,7 @@ handle_stap_probe (struct objfile *objfile, struct sdt_note *el, { bfd *abfd = objfile->obfd; int size = bfd_get_arch_size (abfd) / 8; - struct gdbarch *gdbarch = get_objfile_arch (objfile); + struct gdbarch *gdbarch = objfile->arch (); struct type *ptr_type = builtin_type (gdbarch)->builtin_data_ptr; /* Provider and the name of the probe. */ @@ -1606,7 +1606,7 @@ get_stap_base_address (bfd *obfd, bfd_vma *base) { complaint (_("could not obtain base address for " "SystemTap section on objfile `%s'."), - obfd->filename); + bfd_get_filename (obfd)); return 0; } @@ -1709,8 +1709,9 @@ info_probes_stap_command (const char *arg, int from_tty) info_probes_for_spops (arg, from_tty, &stap_static_probe_ops); } +void _initialize_stap_probe (); void -_initialize_stap_probe (void) +_initialize_stap_probe () { all_static_probe_ops.push_back (&stap_static_probe_ops);