From ee9a09e959a5b7c152cc72028d4f6c879bc901c9 Mon Sep 17 00:00:00 2001 From: Dominik Czarnota Date: Sun, 26 Nov 2017 22:42:18 -0500 Subject: [PATCH] Update find command help and search memory docs This patch updates the `find` command help and docs description to show how to search for not null terminated strings when current language's strings includes it. gdb/ChangeLog: PR gdb/21945 * findcmd.c (_initialize_mem_search): Update find command help text. gdb/doc/ChangeLog: PR gdb/21945 * gdb.texinfo (Search Memory): Update description and example about how to search a string without NULL terminator. --- gdb/ChangeLog | 6 ++++++ gdb/doc/ChangeLog | 6 ++++++ gdb/doc/gdb.texinfo | 8 +++++++- gdb/findcmd.c | 4 +++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b3032ed7d88..6134efc09ca 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-11-26 Dominik Czarnota + + PR gdb/21945 + * findcmd.c (_initialize_mem_search): Update find command help + text. + 2017-11-26 Simon Marchi * python/python.c (do_start_initialization): Change progname diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 988b7b8d872..2a1eb76d15c 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,9 @@ +2017-11-26 Dominik Czarnota + + PR gdb/21945 + * gdb.texinfo (Search Memory): Update description and example + about how to search a string without NULL terminator. + 2017-11-24 Joel Brobecker * gdb.texinfo (GDB/MI Ada Exception Information): Document diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 00451d243d5..675f6e7bc82 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -11920,6 +11920,8 @@ giant words (eight bytes) All values are interpreted in the current language. This means, for example, that if the current source language is C/C@t{++} then searching for the string ``hello'' includes the trailing '\0'. +The null terminator can be removed from searching by using casts, +e.g.: @samp{@{char[5]@}"hello"}. If the value size is not specified, it is taken from the value's type in the current language. @@ -11969,7 +11971,11 @@ you get during debugging: (gdb) find &hello[0], +sizeof(hello), 'h', 'e', 'l', 'l', 'o' 0x8049567 0x804956d -2 patterns found +2 patterns found. +(gdb) find &hello[0], +sizeof(hello), @{char[5]@}"hello" +0x8049567 +0x804956d +2 patterns found. (gdb) find /b1 &hello[0], +sizeof(hello), 'h', 0x65, 'l' 0x8049567 1 pattern found diff --git a/gdb/findcmd.c b/gdb/findcmd.c index b43fefc06da..d437b56d920 100644 --- a/gdb/findcmd.c +++ b/gdb/findcmd.c @@ -293,7 +293,9 @@ and if not specified the size is taken from the type of the expression\n\ in the current language.\n\ Note that this means for example that in the case of C-like languages\n\ a search for an untyped 0x42 will search for \"(int) 0x42\"\n\ -which is typically four bytes.\n\ +which is typically four bytes, and a search for a string \"hello\" will\n\ +include the trailing '\\0'. The null terminator can be removed from\n\ +searching by using casts, e.g.: {char[5]}\"hello\".\n\ \n\ The address of the last match is stored as the value of \"$_\".\n\ Convenience variable \"$numfound\" is set to the number of matches."), -- 2.30.2