From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.help Subject: Re: watching for variable assignment Date: Mon, 10 Mar 2014 18:35:45 +0800 Message-ID: <87y50iibni.fsf@ericabrahamsen.net> References: <87lhwih0ij.fsf@ericabrahamsen.net> <87lhwicsgc.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1394447628 9299 80.91.229.3 (10 Mar 2014 10:33:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 10 Mar 2014 10:33:48 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Mar 10 11:33:57 2014 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WMxWu-0006Q1-AR for geh-help-gnu-emacs@m.gmane.org; Mon, 10 Mar 2014 11:33:56 +0100 Original-Received: from localhost ([::1]:47838 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WMxWt-0001oW-HE for geh-help-gnu-emacs@m.gmane.org; Mon, 10 Mar 2014 06:33:55 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44633) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WMxWc-0001o9-Jc for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 06:33:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WMxWW-000592-Ix for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 06:33:38 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:40019) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WMxWW-00057V-DJ for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 06:33:32 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WMxWU-00068V-Nz for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 11:33:30 +0100 Original-Received: from 114.248.1.149 ([114.248.1.149]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 10 Mar 2014 11:33:30 +0100 Original-Received: from eric by 114.248.1.149 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 10 Mar 2014 11:33:30 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 36 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 114.248.1.149 User-Agent: Gnus/5.13001 (Ma Gnus v0.10) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:+rVV3RC/fBW/ITWm+jZBR1UeAFY= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:96387 Archived-At: Jambunathan K writes: > Eric Abrahamsen writes: > >> I'm trying to somehow trigger a message or a backtrace whenever that >> variable's value changes. > > > You are looking for a "Write Breakpoint". I haven't done much Elisp > debugging. Going by the docs, the following looks promising. > > (info "(elisp) Global Break Condition") No, this isn't going to work -- the only way I could find the code that's resetting the variable would be to instrument it directly, which would require knowing which code it was in the first place. Not much use! I've got git emacs installed on my system, and I think the newer version of advising functions might work better. I'm hoping that if I add a function to "setq" with the :before key, I can avoid the infinite loop problem. I read the manual, and found it pretty unhelpful on the question of how to tell it what function you're actually trying to advise. A "setf-able place" doesn't mean much to me when I'm just trying to hijack "setq" and check its args. Can someone illustrate for me the (I'd hope fairly simple) case of adding a function :before "setq", and checking if its first argument is "nnimap-split-fancy"? The possibility that's it's a longer setq form with multiple arguments is one I'll consider after I've got the basic shape down... Thanks! Eric