Date: Mon, 11 Feb 2013 11:01:35 +0100 From: Christoph Mallon <christoph.mallon@gmx.de> To: Andriy Gapon <avg@FreeBSD.org> Cc: Chris Rees <utisoft@gmail.com>, freebsd-arch@FreeBSD.org Subject: Re: Proposal: Unify printing the function name in panic messages() Message-ID: <5118C17F.9020706@gmx.de> In-Reply-To: <51166AD5.4090707@FreeBSD.org> References: <51141E33.4080103@gmx.de> <511426B8.2070800@FreeBSD.org> <51160E06.1070404@gmx.de> <5116121E.1010601@FreeBSD.org> <511616AC.8080306@gmx.de> <511622A2.2090601@FreeBSD.org> <CADLo83_HfA4FGR0xNzHpPNPGee3QHG3PB8ZQVXGci=TvOB6kZQ@mail.gmail.com> <51166AD5.4090707@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 09.02.2013 16:27, Andriy Gapon wrote: > on 09/02/2013 12:46 Chris Rees said the following: >> OK, which tool can one find a panic message split across lines in source code? >> I would find this very useful. > > http://grok.x12.su/source/search?q=%22offset+below+first+LBA%22&project=freebsd > > Generally, I like opengrok very much. Pity that we don't have an official > server. fxr.watson.org is great, but opengrok is superior to glimpse. > E.g. try the same kind of search here: http://fxr.watson.org/fxr/search > > BTW, a local version (slower because no index is used): > $ pcregrep -r -M 'offset\W*below\W*first\W*LBA' sys/ > sys/geom/part/g_part.c: DPRINTF("partition %d has start offset > below first " > "LBA: %jd < %jd\n", e1->gpe_index, > pcregrep comes from devel/pcre. > > P.S. my first instinct was to try git grep first, git grep seems to support perl > regular expressions in general, but it looks like the port doesn't include the > necessary support: > fatal: cannot use Perl-compatible regexes when not compiled with USE_LIBPCRE > > P.P.S. I must say that I use textproc/glimpse (with index weekly updated via > cron) and in 99% of cases glimpse 'something' immediately returns useful > results. It's quite rare that I have to use other tools for searching the code. > I use vim + ctags too :-) Your suggestion is to replace a simple, automatic mechanism by several different tools, which require quite some manual fiddling. When showing the function name, your simple suggestion for using git grep works fine: [0] $EDITOR `git grep -Il "^$NAME("` Christoph [0] I use the following script for the general case "edit all files containing a pattern". I named it git-ed and git-ew, placed it in $PATH, so it can be used conveniently as git ed $PATTERN and git ew $PATTERN. It edits all files containing the given pattern, searches for the pattern und binds \ to find the pattern. #! /bin/sh set -eu PATTERN="$1" shift NAME="${0##*/}" case "$NAME" in git-ed) ;; git-ew) PATTERN="[[:<:]]$PATTERN[[:>:]]";; *) echo "$NAME: who am I?" >&2; exit 1;; esac VIPATTERN=$(echo "$PATTERN" | sed -e 's#\[\[:<:\]\]#\\<#g' -e 's#\[\[:>:\]\]#\\>#g') "$EDITOR" -c "map \\ /$VIPATTERN^M" -c "/$VIPATTERN" $(git grep -Il -e "$PATTERN" "$@")
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5118C17F.9020706>