aboutsummaryrefslogtreecommitdiff
path: root/gdb/corefile.c
diff options
context:
space:
mode:
authorDavid Taylor <taylor@redhat.com>1998-12-28 23:06:13 +0000
committerDavid Taylor <taylor@redhat.com>1998-12-28 23:06:13 +0000
commit4ef1f4677390c085543fe80eec41b0fe5d58ddca (patch)
treed0e8320e4871a81733155e8ce653507dd3d64825 /gdb/corefile.c
parentd6fdf61c78fbce1dad62cd1022e606fdaaad4202 (diff)
downloadfsf-binutils-gdb-4ef1f4677390c085543fe80eec41b0fe5d58ddca.zip
fsf-binutils-gdb-4ef1f4677390c085543fe80eec41b0fe5d58ddca.tar.gz
fsf-binutils-gdb-4ef1f4677390c085543fe80eec41b0fe5d58ddca.tar.bz2
hp merge changes -- too numerous to mention here; see ChangeLog and
ChangeLog-gdbtk for details.
Diffstat (limited to 'gdb/corefile.c')
-rw-r--r--gdb/corefile.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gdb/corefile.c b/gdb/corefile.c
index 7f66ec1..8ffe49d 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -325,6 +325,37 @@ read_memory_unsigned_integer (memaddr, len)
read_memory (memaddr, buf, len);
return extract_unsigned_integer (buf, len);
}
+
+void
+read_memory_string (memaddr, buffer, max_len)
+ CORE_ADDR memaddr;
+ char * buffer;
+ int max_len;
+{
+ register char * cp;
+ register int i;
+ int cnt;
+
+ cp = buffer;
+ while (1)
+ {
+ if (cp - buffer >= max_len)
+ {
+ buffer[max_len - 1] = '\0';
+ break;
+ }
+ cnt = max_len - (cp - buffer);
+ if (cnt > 8)
+ cnt = 8;
+ read_memory (memaddr + (int) (cp - buffer), cp, cnt);
+ for (i = 0; i < cnt && *cp; i++, cp++)
+ ; /* null body */
+
+ if (i < cnt && !*cp)
+ break;
+ }
+}
+
#if 0
/* Enable after 4.12. It is not tested. */