From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Why is it so difficult to get a Lisp backtrace? Date: Sun, 26 Jun 2022 04:45:58 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5696"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jun 26 10:47:24 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o5NvO-0001HC-DH for ged-emacs-devel@m.gmane-mx.org; Sun, 26 Jun 2022 10:47:22 +0200 Original-Received: from localhost ([::1]:39020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o5NvM-0004r7-V0 for ged-emacs-devel@m.gmane-mx.org; Sun, 26 Jun 2022 04:47:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5NuD-0003zR-Kj for emacs-devel@gnu.org; Sun, 26 Jun 2022 04:46:11 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:3663) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5Nu9-0002iK-6O for emacs-devel@gnu.org; Sun, 26 Jun 2022 04:46:08 -0400 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 188A8805C8; Sun, 26 Jun 2022 04:46:03 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id A580F8012F; Sun, 26 Jun 2022 04:46:01 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1656233161; bh=pQaw7DQrPEduiFjvDGRzU5hwK3ZGdj3gPOMsAXhRlTM=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=H8vyzec/qGsaTkdts+Yun2BHExIhwBZSUwqZ4NQ9zmPys8+7x7jNOpn/DSzzj8PDx czVK/oIKP1qAv/VJ69L/Qzj/zK7KsnaXTwLsPzsRQjT/SUmxjYKF204RpE1Ep05jid 6PHgKhh1eh6qo8M/oaZ52SYmuuHn9GkdT1svf5vaWlSvTuTi0cbKKTPr5kbXsgGEp1 NeiM1sbUJOyCkJrsBHUeh1sGC9yz9BxpYZLZobXYSkJwSUeahlmb7DIn1OoQ/mEq6S OKMi7v+zt4m0t1nwzFCqB4X0FwGnMloYa24BJ+OuwoBine/J+exXix9o5RYn528sTS GbGDrF79wap+A== Original-Received: from alfajor (165.63.10.93.rev.sfr.net [93.10.63.165]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C64C01201B3; Sun, 26 Jun 2022 04:46:00 -0400 (EDT) In-Reply-To: (Alan Mackenzie's message of "Sat, 25 Jun 2022 13:42:04 +0000") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:291627 Archived-At: > This third group of users is poorly catered for by the current collection > of mechanisms. See also bug #56201, with thanks to Andreas and Lars who > helped me get to the bottom of it. To be reasonably sure of getting a > backtrace, it seems one needs to do all of the following: > (i) (setq debug-on-error t). > (ii) (setq debug-on-signal t). > (iii) Bind debug-ignored-errors to nil. > (iv) Pray. > (v) Execute the erring command again. As discussed further in the thread another related problem is those errors which happen in contexts where we can't popup the debugger. I've been thinking recently that every time an error is raised, we should stash the backtrace into some fixed-size table. This way, when an error happens, you don't need to do steps i..v at all, you just go and consult the recent backtraces. I'm not sure I'd do that for all those signals which are caught (just like I'm not sure step ii should be there in your recipe), but I'd definitely do that for those errors caught by `with-demoted-errors`. Stefan