diff options
author | David Taylor <taylor@redhat.com> | 1998-12-28 23:06:13 +0000 |
---|---|---|
committer | David Taylor <taylor@redhat.com> | 1998-12-28 23:06:13 +0000 |
commit | 4ef1f4677390c085543fe80eec41b0fe5d58ddca (patch) | |
tree | d0e8320e4871a81733155e8ce653507dd3d64825 /gdb/corefile.c | |
parent | d6fdf61c78fbce1dad62cd1022e606fdaaad4202 (diff) | |
download | fsf-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.c | 31 |
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. */ |