[Crash-utility] RFC: Improving crash's search speed

Dave Anderson anderson at redhat.com
Thu Jan 27 20:24:39 UTC 2011



----- Original Message -----
> On Wed, 2011-01-26 at 20:29 +0000, Dave Anderson wrote:
> 
> >
> > I've pretty much got -p working OK, and next I'll plug in the -KVM restrictors.
> 
> By the way, thanks for running with this.
> 
> 
> >
> > > Today I'm trying to find out why parse_line() is messing up when given
> > > more than one string in ""'s.
> >
> > Not sure I understand how you can do that, but don't let me interfere...
> 
> The syntax for the search command:
> search [-s start | -k | -u] [-e end | -l length] [-m mask] value ...
> 
> allows multiple values for simultaneous search. For example:
> 
> crash-5.1.1str> search -k 00007ffffd401e28 00007f29a0cbeb9f
> ffff88011e889f70: 7ffffd401e28
> ffff88011e889fd8: 7f29a0cbeb9f
> 
> I thought I'd use a similar syntax for strings (-c for "chars", looking
> for a better letter, maybe -S):
> 
> crash-5.1.1str> search -k -c "Memory value expected" "No such file or"
> 
> The current version of parse_line in tools.c has a problem with repeated
> strings, so that it delivers the following in the value[] array:
> 
> (gdb) p value[0]
> $1 = 0xb74a04 "Memory value expected"
> (gdb) p value[1]
> $2 = 0xb74a1b "\"No"
> (gdb) p value[2]
> $3 = 0xb74a1f "such"
> (gdb) p value[3]
> $4 = 0xb74a24 "file"
> (gdb) p value[4]
> $5 = 0xb74a29 "or\""
> 
> With the attached patch, it delivers:
> 
> (gdb) p value[0]
> $1 = 0xb77a24 "Memory value expected"
> (gdb) p value[1]
> $2 = 0xb77a3c "No such file or"
> 
> I don't think it messes anything else up...

I don't believe so either -- the patch makes good sense.  Thanks
for tracking that down.  Strange that it would only "break up" the
2nd, 4th, 6th, etc. string arguments.  I didn't bother trying to
understand why that happens...)  

Queued for the next release.

Thanks,
  Dave





More information about the Crash-utility mailing list