From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23825 invoked by alias); 2 Mar 2012 19:07:20 -0000 Mailing-List: contact archer-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: List-Id: Received: (qmail 23803 invoked by uid 22791); 2 Mar 2012 19:07:19 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Date: Fri, 02 Mar 2012 19:07:00 -0000 From: Joel Brobecker To: Keith Seitz Cc: archer@sourceware.org Subject: Re: [Archer] Stop the Insanity! Linespec Rewrite Message-ID: <20120302190658.GH2867@adacore.com> References: <4F501EC1.3050104@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4F501EC1.3050104@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-SW-Source: 2012-q1/txt/msg00013.txt.bz2 > Earlier this month, I dug this out of mothballs, and it is now time > to submit the work-in-progress for comment. This is *not* a finished > design and/or implementation! It is simply a place to stop along the > road and ask for advice, for a fresh set of eyes. Consider this akin > to an RFC. I really like the fact that you're now splitting the parsing from the evaluation (the transformation into SALs). Looking at the parsing code, I had a feeling that it would not work with Ada operators, and in particular with: (gdb) break "*" Argument required (expression to compute). I then tried other operators that might be problematic, eg: (gdb) break "+" Function "+" not defined. Make breakpoint pending on future shared library load But also simpler-to-handle operators such as "/" do not seem to work: (gdb) braek "/" Function "/" not defined. Make breakpoint pending on future shared library load I reviewed the gdb.ada testsuite, and it appears that I failed to add a testcase for those. I will put that on my list. I can help with the implementation side of the above feature, but do you think your parser could accomodate that? As discussed with Tom, it is fine if we need to compromise a bit an accept "break *" (the operator name without quotes) or "break '*'" (operator name bracketed by single-quotes, which is illegal Ada, but who cares). I have noticed a few other things: . Very minor: We now accept the "task" keyword in any casing (?). So now "break foo TASK 3" is accepted, whereas it wasn't in the past. . Your new linespec passes the entire gdb.ada testsuite. Congrats, this is no small feat, if you ask me! . Our testsuite spotted a couple of crashes. They might be related to the crash that Tom mentioned, although I kind of doubt it. Nevertheless, I'll investigate them after you've looked at Tom's report, just in case they end up having the same cause. The code itself looks pretty good to me, although I mostly skimmed through it. I agree with Tom that you can think of cleaning things up and do an official submission. I'd like to resolve the issues mentioned above before the patch actually goes in, but I have spare cycles next week for that - let's enjoy those spares cycles while they last. They have been pretty rare lately... -- Joel