From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Why is it so difficult to get a Lisp backtrace? Date: Sat, 25 Jun 2022 13:42:04 +0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1339"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Jun 25 15:44:19 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 1o565C-0000AE-Jw for ged-emacs-devel@m.gmane-mx.org; Sat, 25 Jun 2022 15:44:18 +0200 Original-Received: from localhost ([::1]:33564 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o565A-000450-Ty for ged-emacs-devel@m.gmane-mx.org; Sat, 25 Jun 2022 09:44:16 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36240) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o563M-000384-Os for emacs-devel@gnu.org; Sat, 25 Jun 2022 09:42:25 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:54859 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1o563K-00075I-ML for emacs-devel@gnu.org; Sat, 25 Jun 2022 09:42:24 -0400 Original-Received: (qmail 39948 invoked by uid 3782); 25 Jun 2022 13:42:05 -0000 Original-Received: from acm.muc.de (p4fe15baa.dip0.t-ipconnect.de [79.225.91.170]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sat, 25 Jun 2022 15:42:04 +0200 Original-Received: (qmail 5682 invoked by uid 1000); 25 Jun 2022 13:42:04 -0000 Content-Disposition: inline X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.1; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, 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:291600 Archived-At: Hello, Emacs. (setq debug-on-error t) ought to be useful to get backtraces. It is, sometimes, but far from always. There seem to be three use cases for debug-on-error: (i) The vast bulk of users, who are barely, if at all, aware of its existence. They will enable it on request from a maintainer to help debug a bug. (ii) Hard-core maintainers, who run with it enabled constantly. Here debug-ignored-errors helps suppress certain unhelpful errors which would otherwise occur too often and irritate. (iii) Those maintainers who run with it disabled, but when an error occurs, want to be able to repeat that error and get a backtrace. 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. I put it to people that we need a new command or variable not called something like `backtrace-next-and-I-really-mean-it' which would allow step (v) to generate the desired backtrace without having to go through steps (i) to (iv) individually. The lack of such a command/variable is making (at least) my Emacs development less pleasant than it might otherwise be. -- Alan Mackenzie (Nuremberg, Germany).