41 #define MAX_SPE_FD 1024 44 #define spu_standalone_p() \ 45 (symfile_objfile && symfile_objfile->obfd \ 46 && bfd_get_arch (symfile_objfile->obfd) == bfd_arch_spu) 108 ocl_program_addr_base
110 if (ocl_program_addr_base != NULL)
112 enum bfd_endian byte_order = bfd_big_endian (
objfile->
obfd)?
113 BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
134 link_ptr = &newobj->
next;
170 for (link_ptr = &head; *link_ptr; link_ptr = &(*link_ptr)->
next)
196 for (i = 0; i <
size; i += 4)
201 unsigned long long addr;
202 char annex[32],
id[100];
208 xsnprintf (annex,
sizeof annex,
"%d/object-id", fd);
211 if (len <= 0 || len >=
sizeof id)
214 if (sscanf (
id,
"0x%llx", &addr) != 1 || !addr)
227 link_ptr = &newobj->
next;
253 unsigned long long addr;
294 file_ptr nbytes, file_ptr
offset)
302 bfd_set_error (bfd_error_invalid_operation);
317 memset (sb, 0,
sizeof (
struct stat));
327 *open_closure = addr;
337 if (!bfd_check_format (nbfd.
get (), bfd_object))
347 char *original_name = strrchr (pathname,
'@');
349 unsigned long long addr;
357 if (sscanf (original_name,
"@0x%llx <%d>", &addr, &fd) != 2)
363 error (
_(
"Cannot read SPE executable at %s"), original_name);
366 spu_name = bfd_get_section_by_name (
abfd.get (),
".note.spu_name");
369 int sect_size = bfd_section_size (
abfd.get (), spu_name);
374 = (
char *) alloca (sect_size - 20 + strlen (original_name) + 1);
376 bfd_get_section_contents (
abfd.get (), spu_name, buf, 20,
378 buf[sect_size - 20] =
'\0';
380 strcat (buf, original_name);
383 abfd->filename = xstrdup (buf);
416 if (spe_event_sym.minsym)
445 if (event_sym.minsym && addr_sym.
minsym)
461 ocl_program_addr_base);
538 if (strstr (so->
so_name,
"CLRuntimeAccelCellSPU@") != NULL)
struct gdbarch * target_gdbarch(void)
char * hex_string(LONGEST num)
static void ocl_enable_break(struct objfile *objfile)
static void spu_relocate_main_executable(int spufs_fd)
#define SPUADDR(spu, addr)
#define OBSTACK_CALLOC(OBSTACK, NUMBER, TYPE)
void enable_breakpoints_after_startup(void)
void disable_breakpoints_before_startup(void)
ptid_t target_wait(ptid_t ptid, struct target_waitstatus *status, int options)
struct breakpoint * create_solib_event_breakpoint(struct gdbarch *gdbarch, CORE_ADDR address)
static void * spu_bfd_iovec_open(bfd *nbfd, void *open_closure)
static const struct objfile_data * ocl_program_data_key
void set_solib_ops(struct gdbarch *gdbarch, const struct target_so_ops *new_ops)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
static void spu_solib_loaded(struct so_list *so)
static void append_ocl_sos(struct so_list **link_ptr)
#define SPUADDR_SPU(addr)
enum domain_enum_tag domain_enum
void(* relocate_section_addresses)(struct so_list *so, struct target_section *)
#define spu_standalone_p()
void * memset(T *s, int c, size_t n)=delete
void internal_error(const char *file, int line, const char *fmt,...)
struct thread_info * inferior_thread(void)
void(* solib_create_inferior_hook)(int from_tty)
struct so_list *(* current_sos)(void)
void objfile_relocate(struct objfile *objfile, const struct section_offsets *new_offsets)
static int spu_bfd_iovec_stat(bfd *abfd, void *stream, struct stat *sb)
static struct so_list * spu_current_sos(void)
gdb_bfd_ref_ptr(* bfd_open)(char *pathname)
static void spu_solib_create_inferior_hook(int from_tty)
static gdb_bfd_ref_ptr spu_bfd_open(char *pathname)
#define CATCH(EXCEPTION, MASK)
static void spu_relocate_section_addresses(struct so_list *so, struct target_section *sec)
void _initialize_spu_solib(void)
struct target_ops current_target
objfile(bfd *, const char *, objfile_flags)
static ULONGEST extract_unsigned_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
struct block_symbol(* lookup_lib_global_symbol)(struct objfile *objfile, const char *name, const domain_enum domain)
CORE_ADDR gdbarch_convert_from_func_ptr_addr(struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
void target_resume(ptid_t ptid, int step, enum gdb_signal signal)
static void spu_skip_standalone_loader(void)
char so_original_name[SO_NAME_MAX_PATH_SIZE]
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
struct gdbarch * get_objfile_arch(const struct objfile *objfile)
static int spu_enable_break(struct objfile *objfile)
struct obj_section * sections
char so_name[SO_NAME_MAX_PATH_SIZE]
#define target_has_execution
struct bfd_section * the_bfd_section
void set_spu_solib_ops(struct gdbarch *gdbarch)
void throw_exception(struct gdb_exception exception)
struct target_so_ops svr4_so_ops
struct block_symbol lookup_global_symbol_from_objfile(struct objfile *main_objfile, const char *name, const domain_enum domain)
int xsnprintf(char *str, size_t size, const char *format,...)
thread_control_state control
gdb_bfd_ref_ptr gdb_bfd_openr_iovec(const char *filename, const char *target, void *(*open_func)(struct bfd *nbfd, void *open_closure), void *open_closure, file_ptr(*pread_func)(struct bfd *nbfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset), int(*close_func)(struct bfd *nbfd, void *stream), int(*stat_func)(struct bfd *abfd, void *stream, struct stat *sb))
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
struct minimal_symbol * minsym
void(* free_so)(struct so_list *so)
static int spu_bfd_iovec_close(bfd *nbfd, void *stream)
struct inferior * current_inferior(void)
LONGEST target_read(struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *buf, ULONGEST offset, LONGEST len)
static void spu_free_so(struct so_list *so)
int solib_read_symbols(struct so_list *so, symfile_add_flags flags)
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
#define ALL_OBJFILES(obj)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
void set_executing(ptid_t ptid, int executing)
static file_ptr spu_bfd_iovec_pread(bfd *abfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset)
void error(const char *fmt,...)
struct observer * observer_attach_solib_loaded(observer_solib_loaded_ftype *f)
static gdb_bfd_ref_ptr spu_bfd_fopen(char *name, CORE_ADDR addr)
struct obj_section * sections_end
static struct block_symbol spu_lookup_lib_symbol(struct objfile *objfile, const char *name, const domain_enum domain)