From c09f20e469dbed255f419433b06a2808ae0a40a8 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Mon, 27 Jan 2014 12:56:56 +0800 Subject: [PATCH] core_xfer_shared_libraries and core_xfer_shared_libraries_aix returns ULONGEST This patch documents the return value of core_xfer_shared_libraries_aix and core_xfer_shared_libraries gdbarch methods, and changes return type to ULONGEST from LONGEST. In a following patch, core_xfer_partial. is changed to check their return values and return an appropriate target_xfer_status. gdb: 2014-02-07 Yao Qi * gdbarch.sh (core_xfer_shared_libraries): Returns ULONGEST. Add comments. (core_xfer_shared_libraries_aix): Likewise. * gdbarch.c, gdbarch.h: Regenerated. * i386-cygwin-tdep.c (windows_core_xfer_shared_libraries): Return ULONGEST. Change 'len_avail' type to ULONGEST. * rs6000-aix-tdep.c (rs6000_aix_ld_info_to_xml): Likewise. * rs6000-aix-tdep.h (rs6000_aix_ld_info_to_xml): Update declaration. (rs6000_aix_core_xfer_shared_libraries_aix): Return ULONGEST. --- gdb/ChangeLog | 13 +++++++++++++ gdb/gdbarch.c | 4 ++-- gdb/gdbarch.h | 15 +++++++++------ gdb/gdbarch.sh | 9 ++++++--- gdb/i386-cygwin-tdep.c | 4 ++-- gdb/rs6000-aix-tdep.c | 6 +++--- gdb/rs6000-aix-tdep.h | 12 ++++++------ 7 files changed, 41 insertions(+), 22 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index de3c3a6..146ac98 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,18 @@ 2014-02-07 Yao Qi + * gdbarch.sh (core_xfer_shared_libraries): Returns ULONGEST. Add + comments. + (core_xfer_shared_libraries_aix): Likewise. + * gdbarch.c, gdbarch.h: Regenerated. + * i386-cygwin-tdep.c (windows_core_xfer_shared_libraries): Return + ULONGEST. Change 'len_avail' type to ULONGEST. + * rs6000-aix-tdep.c (rs6000_aix_ld_info_to_xml): Likewise. + * rs6000-aix-tdep.h (rs6000_aix_ld_info_to_xml): Update + declaration. + (rs6000_aix_core_xfer_shared_libraries_aix): Return ULONGEST. + +2014-02-07 Yao Qi + * corefile.c (memory_error): Get 'exception' from ERR and pass 'exception' to throw_error. diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index e26681c..8922358 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -3532,7 +3532,7 @@ gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch) return gdbarch->core_xfer_shared_libraries != NULL; } -LONGEST +ULONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len) { gdb_assert (gdbarch != NULL); @@ -3556,7 +3556,7 @@ gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch) return gdbarch->core_xfer_shared_libraries_aix != NULL; } -LONGEST +ULONGEST gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len) { gdb_assert (gdbarch != NULL); diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 9698e11..bb355d7 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -779,21 +779,24 @@ extern int gdbarch_find_memory_regions (struct gdbarch *gdbarch, find_memory_reg extern void set_gdbarch_find_memory_regions (struct gdbarch *gdbarch, gdbarch_find_memory_regions_ftype *find_memory_regions); /* Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list from - core file into buffer READBUF with length LEN. */ + core file into buffer READBUF with length LEN. Return the number of bytes read + (zero indicates failure). + failed, otherwise, return the red length of READBUF. */ extern int gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch); -typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); -extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); +typedef ULONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); +extern ULONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries); /* Read offset OFFSET of TARGET_OBJECT_LIBRARIES_AIX formatted shared - libraries list from core file into buffer READBUF with length LEN. */ + libraries list from core file into buffer READBUF with length LEN. + Return the number of bytes read (zero indicates failure). */ extern int gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch); -typedef LONGEST (gdbarch_core_xfer_shared_libraries_aix_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); -extern LONGEST gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); +typedef ULONGEST (gdbarch_core_xfer_shared_libraries_aix_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); +extern ULONGEST gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len); extern void set_gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix); /* How the core target converts a PTID from a core file to a string. */ diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index e785999..fe7119f 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -672,12 +672,15 @@ F:char *:elfcore_write_linux_prpsinfo:bfd *obfd, char *note_data, int *note_size M:int:find_memory_regions:find_memory_region_ftype func, void *data:func, data # Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list from -# core file into buffer READBUF with length LEN. -M:LONGEST:core_xfer_shared_libraries:gdb_byte *readbuf, ULONGEST offset, ULONGEST len:readbuf, offset, len +# core file into buffer READBUF with length LEN. Return the number of bytes read +# (zero indicates failure). +# failed, otherwise, return the red length of READBUF. +M:ULONGEST:core_xfer_shared_libraries:gdb_byte *readbuf, ULONGEST offset, ULONGEST len:readbuf, offset, len # Read offset OFFSET of TARGET_OBJECT_LIBRARIES_AIX formatted shared # libraries list from core file into buffer READBUF with length LEN. -M:LONGEST:core_xfer_shared_libraries_aix:gdb_byte *readbuf, ULONGEST offset, ULONGEST len:readbuf, offset, len +# Return the number of bytes read (zero indicates failure). +M:ULONGEST:core_xfer_shared_libraries_aix:gdb_byte *readbuf, ULONGEST offset, ULONGEST len:readbuf, offset, len # How the core target converts a PTID from a core file to a string. M:char *:core_pid_to_str:ptid_t ptid:ptid diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c index 4b8a00d..7b7785a 100644 --- a/gdb/i386-cygwin-tdep.c +++ b/gdb/i386-cygwin-tdep.c @@ -168,14 +168,14 @@ out: return; } -static LONGEST +static ULONGEST windows_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len) { struct obstack obstack; const char *buf; - LONGEST len_avail; + ULONGEST len_avail; struct cpms_data data = { gdbarch, &obstack, 0 }; obstack_init (&obstack); diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c index aeea3ed..3ab8883 100644 --- a/gdb/rs6000-aix-tdep.c +++ b/gdb/rs6000-aix-tdep.c @@ -965,14 +965,14 @@ rs6000_aix_shared_library_to_xml (struct ld_info *ldi, as the consumer of the XML library list might live in a different process. */ -LONGEST +ULONGEST rs6000_aix_ld_info_to_xml (struct gdbarch *gdbarch, const gdb_byte *ldi_buf, gdb_byte *readbuf, ULONGEST offset, ULONGEST len, int close_ldinfo_fd) { struct obstack obstack; const char *buf; - LONGEST len_avail; + ULONGEST len_avail; obstack_init (&obstack); obstack_grow_str (&obstack, "\n"); @@ -1009,7 +1009,7 @@ rs6000_aix_ld_info_to_xml (struct gdbarch *gdbarch, const gdb_byte *ldi_buf, /* Implement the core_xfer_shared_libraries_aix gdbarch method. */ -static LONGEST +static ULONGEST rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, diff --git a/gdb/rs6000-aix-tdep.h b/gdb/rs6000-aix-tdep.h index 76765f1..90fc5ed 100644 --- a/gdb/rs6000-aix-tdep.h +++ b/gdb/rs6000-aix-tdep.h @@ -18,11 +18,11 @@ #ifndef RS6000_AIX_TDEP_H #define RS6000_AIX_TDEP_H -extern LONGEST rs6000_aix_ld_info_to_xml (struct gdbarch *gdbarch, - const gdb_byte *ldi_buf, - gdb_byte *readbuf, - ULONGEST offset, - ULONGEST len, - int close_ldinfo_fd); +extern ULONGEST rs6000_aix_ld_info_to_xml (struct gdbarch *gdbarch, + const gdb_byte *ldi_buf, + gdb_byte *readbuf, + ULONGEST offset, + ULONGEST len, + int close_ldinfo_fd); #endif /* RS6000_AIX_TDEP_H */ -- 2.7.4