From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: Debugging 'message-send , an unexpected void function error occured. Date: Wed, 07 Nov 2012 12:01:51 +0100 Message-ID: <874nl1u15s.fsf@web.de> References: <5098114b$0$1854$426a74cc@news.free.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1352286111 30453 80.91.229.3 (7 Nov 2012 11:01:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 7 Nov 2012 11:01:51 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Nov 07 12:01:59 2012 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 1TW3OO-0001wR-Sl for geh-help-gnu-emacs@m.gmane.org; Wed, 07 Nov 2012 12:01:57 +0100 Original-Received: from localhost ([::1]:34470 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TW3OF-0005sC-SE for geh-help-gnu-emacs@m.gmane.org; Wed, 07 Nov 2012 06:01:47 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:33236) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TW3O4-0005rE-VQ for help-gnu-emacs@gnu.org; Wed, 07 Nov 2012 06:01:42 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TW3Nt-00010G-Mh for help-gnu-emacs@gnu.org; Wed, 07 Nov 2012 06:01:36 -0500 Original-Received: from mout.web.de ([212.227.15.3]:64141) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TW3Nt-000101-Di for help-gnu-emacs@gnu.org; Wed, 07 Nov 2012 06:01:25 -0500 Original-Received: from drachen.dragon ([89.204.138.139]) by smtp.web.de (mrweb001) with ESMTPSA (Nemesis) id 0LqlAw-1Ss1XU3hvm-00e9Ry; Wed, 07 Nov 2012 12:01:23 +0100 Mail-Followup-To: help-gnu-emacs@gnu.org In-Reply-To: <5098114b$0$1854$426a74cc@news.free.fr> (Yves Baumes's message of "Mon, 5 Nov 2012 20:19:39 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux) X-Provags-ID: V02:K0:45e8geU1I8PaCKuCkIr3sOJVi9L4DczhcH7YhZxWjrV YhjhZ+ILRUXCwQF4D32WgjGK1kYE3spc1V7WW4yIoJUDrMzxHm LJi/XgWAyEBRX9iFEZ3aKR5oiDxUFqVLYWKDDy5jINfkyLeOFN iH+BC1qMvdbM3Ya3fF9ASW9ufiZkAi8xG1tQekqPPAQ0vAov5o M9fnMjR4rDDIR4+yMG+0Cjqo2WI7cWXfF2jjXlqM8o= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.15.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:87567 Archived-At: > Hi everyone, Hi! > I've put a breakpoint on the 'message-send function in message.el file. > When the execution flow hit the breakpoint at the start of the function, > then I hit 'c' in order to continue execution. > Then the execution stops in what is unexpected for me: > "Symbol's function definition is void: caddr". > > Indeed, the 'caddr function is used in the body of the 'message-send > function. > And indeed (describe-function 'caddr) results in an error for me. > > In "normal" execution (i.e. no debuger involved) the interruption on > caddr does not occur. > Why is that ? If I manually define my own 'caddr function (in > *scratch* for instance), > the "instrumented" execution does not complain, of course. But I do > not want to have to > provide a primitive function definition. > > Does the same error occurs for you? What did I miss? Do I need to > import an extra module somewhere before running the "instrumented" > mode? Some initilisation that I miss? > > Sorry if the question feels stupid. No, it isn't a stupid question. I assume that you use a 24.x Emacs. There, `caddr' is a Lisp macro: | caddr is an alias for `cl-caddr' in `cl.el'. | | (caddr X) | | This function has a compiler macro. | | Return the `car' of the `cdr' of the `cdr' of X. If you run in "normal" execution, you run compiled code where macros have been expanded. Thus, Emacs doesn't need the definition of the macro. However, if you run an instrumented function with edebug, you use uncompiled code. That's why you must require cl to use edebug for this, so that the macro definition is known to Emacs. In general, have a look at the `require' calls at the files' beginnings to see which stuff may have to be loaded to make macro definitions known to Emacs for debugging with edebug. Regards, Michael.