bug-gdb
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

find command fix


From: Balogh, Ray
Subject: find command fix
Date: Thu, 7 Jun 2012 18:07:53 -0400

Hi all,

 

I’m using an older version of a cross-platform GDB build (7.0.1 based).  Having to use the “find” command a lot, as I do, is a pain because it seem to always have been broken and never fixed (?).  The problem is that “find” sometimes works, but often returns bogus matches.  I came across an old dormant problem report, Bugzilla – Bug 11158 “find command returns bogus results”, but I’ve never seen any fixes for this.

 

So I took it upon myself to fix this, and after looking at the source code, doing some debugging, and identifying multiple issues, I came to the conclusion that it’s best to rewrite the function simple_search_memory() in gdb/target.c.  I did that and I believe it’s now works properly.

 

I did look at the latest version, 7.4, and there is one minor change in that function which looks to be an attempt at a fix. I didn’t try this out, but I have my doubts that this is a correct fix, nor does it address other issues I noticed in the function.

 

Anyone interested in the getting my update?  I’d be happy to forward it.

 

BTW, I also would like to enhance “find” so that it doesn’t just stop when it encounters an invalid region of memory, but skips past it (with a warning) if there is valid memory at a higher address within the specified range.  This would be really useful for scanning all of the heap memory in a process, which is often disjoint with numerous gaps in between memory segments.  The current need to repeat the “find” many times with different ranges is very awkward.  Any thoughts on this?

 

Best regards,

Ray


reply via email to

[Prev in Thread] Current Thread [Next in Thread]