Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Paul Pluzhnikov <ppluzhnikov@google.com>
To: James Pandavan <james.pandavan@googlemail.com>
Cc: gdb@sourceware.org, Doug Evans <dje@google.com>
Subject: Re: find command with gdb v7.0
Date: Tue, 27 Oct 2009 18:40:00 -0000	[thread overview]
Message-ID: <8ac60eac0910271136x5375b901m8f085001a531eb62@mail.gmail.com> (raw)
In-Reply-To: <4AE6C656.5070007@googlemail.com>

On Tue, Oct 27, 2009 at 3:07 AM, James Pandavan
<james.pandavan@googlemail.com> wrote:

> I wanted to try out the new find command wivh gdb v7.0. I used the example
> given in this page
> (http://sourceware.org/gdb/current/onlinedocs/gdb_11.html#SEC91). I just
> added one line (line no 5) to the example given. It looks like the search
> doesn't start at given location.
>
> In the attached output, you can see that the find command says it couldn't
> find the first word or part of it, but is able to find the second word. Is
> it a bug, or am I doing something wrong?
>
> (gdb) find greet,+100,"greetings"
> Pattern not found.
> (gdb) find greet,+100,"ings"
> Pattern not found.

This currently searches for a sequence of bytes 'i', 'n', 'g', 's', '\0'.

There is in fact no such sequence of bytes in your program, which is why
you get "not found" answer. I'll grant you that it is not what one might
reasonably expect, and the manual doesn't explicitly say the terminating
NUL is included in the search pattern.

I think removing the trailing NUL is a better fix; one could always put
it back with

  find greet,+100,"gentleman",'\0'

if one is really interested in the string with terminating NUL, whereas
currently you'd have to spell each byte separately, which is rather
inconvenient:

  (gdb) p greet
  $1 = 0x4005a8 "greetings gentleman"

  (gdb) find greet,+100,'g','r','e','e','t','i','n','g','s'
  0x4005a8
  1 pattern found.

Feel free to open a GDB enhancement request for this.

>
> Thanks,
> James Pandavan
>
> ----------------------------------------------------------------------------------------------------------
>
> GNU gdb (GDB) 7.0-ubuntu
> Copyright (C) 2009 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from
> /tmp/gdb/gdb_7.0-0ubuntu1_amd64/data/usr/bin/a.out...done.
> (gdb) break main
> Breakpoint 1 at 0x4005f4: file test.cpp, line 5.
> (gdb) list 3,12
> 3 int main()
> 4 {
> 5 char * greet="greetings gentleman";
> 6 static char hello[] = "hello-hello";
> 7 static struct { char c; short s; int i; }
> 8 __attribute__ ((packed)) mixed
> 9 = { 'c', 0x1234, 0x87654321 };
> 10 printf ("%s\n", hello);
> 11 return(0);
> 12 }
> (gdb) run
>
> Breakpoint 1, main () at test.cpp:5
> 5 char * greet="greetings gentleman";
> (gdb) n
> 10 printf ("%s\n", hello);
> (gdb) p greet
> $1 = 0x4006fc "greetings gentleman"
> (gdb) find greet,+100,"greetings"
> Pattern not found.
> (gdb) find greet,+100,"ings"
> Pattern not found.
> (gdb) find greet,+100,"gentleman"
> 0x400706
> 1 pattern found.
> (gdb)
>
>
>
>
>



-- 
Paul Pluzhnikov


  reply	other threads:[~2009-10-27 18:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-27 14:32 James Pandavan
2009-10-27 18:40 ` Paul Pluzhnikov [this message]
2009-10-27 19:27   ` Doug Evans
2009-10-28  5:07     ` James Pandavan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8ac60eac0910271136x5375b901m8f085001a531eb62@mail.gmail.com \
    --to=ppluzhnikov@google.com \
    --cc=dje@google.com \
    --cc=gdb@sourceware.org \
    --cc=james.pandavan@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox