GNU bug report logs - #24753
26.0.50; Error using Edebug on code that uses cl-defmethod

Previous Next

Package: emacs;

Reported by: Gemini Lasswell <gazally <at> runbox.com>

Date: Fri, 21 Oct 2016 15:16:01 UTC

Severity: normal

Tags: confirmed, patch

Found in version 26.0.50

Fixed in version 26.1

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


Message #19 received at 24753 <at> debbugs.gnu.org (full text, mbox):

From: Gemini Lasswell
 <gem <at> chinook.i-did-not-set--mail-host-address--so-tickle-me>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: Gemini Lasswell <gazally <at> runbox.com>, 24753 <at> debbugs.gnu.org
Subject: Re: bug#24753: 26.0.50;
 Error using Edebug on code that uses cl-defmethod
Date: Wed, 26 Apr 2017 14:39:56 -0700
Dmitry Gutov <dgutov <at> yandex.ru> writes:

> TBH, I'm not sure what (setf foo) does in the NAME slot.

I'm not totally clear on what that example is doing either. I just
grabbed it from cl-generic-tests.el because it was short and reproduced
the bug. But I think the idea is to let you define a method so that
(setf (foo x) y) does something analogous to (setf (cdr x) y).

> A similar scenario with existing functions leads to a related problem:

Your scenario is another way to reproduce the bug. When Edebug
instruments something it attaches a cache of markers to the symbol. So
when two methods with the same name are instrumented, the cache of
markers pointing into the first method's source is replaced with a cache
of markers for the second method. And then if you debug into the first
method Edebug sees markers pointing at the wrong method and gets
confused. My patch works by making Edebug generate new symbols for each
method.




This bug report was last modified 8 years and 74 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.