From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23352 invoked by alias); 2 Jul 2009 22:34:06 -0000 Mailing-List: contact archer-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: List-Id: Received: (qmail 23343 invoked by uid 22791); 2 Jul 2009 22:34:05 -0000 X-SWARE-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_20,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org From: Roland McGrath To: Project Archer Subject: feature idea: upto Message-Id: <20090702223351.64F00404FD@magilla.sf.frob.com> Date: Thu, 02 Jul 2009 22:34:00 -0000 X-SW-Source: 2009-q3/txt/msg00009.txt.bz2 A common pattern for me is to hit a breakpoint or signal/crash, and then "up" and hit return until I'm where I want to be. When it's many frames I do "bt" and then "f N" after eyeballing the particular frame. With today's programs, the "bt" output can have really long lines (e.g. huge C++ names, calls with many/long-valued arguments) so the quick eyeball scan is not so quick any more. Some common eyeball-based algorithms seem automatable: upto "a frame with source" upto source foobar.c upto source */myapp/* upto shlib foo.so* upto exec # not shlib upto func upto funcpfx_* upto cl::func(over,load) upto cl:: # any method/func with this ns/class prefix upto foo.c:27 where arg==17 # skip frames where !expr upto where arg==23 # also skip frames where expr not resolvable upto where $r13 == 27 # cond can apply to any context Perhaps some other dwimmy options too, like "upto mine" which is sort of "upto source skipping /usr/include/* /usr/src/debug/*" or some stranger heuristic. (Maybe something like upto a frame whose source line's file name shares a longish prefix with the executable, or with cwd, or something.) Thanks, Roland