From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Timo Lilja Newsgroups: gmane.emacs.bugs Subject: bug#39408: Breakpoints don't work with M-x gdb under TRAMP Date: Mon, 3 Feb 2020 21:07:05 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000bab899059db0a148" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="97903"; mail-complaints-to="usenet@ciao.gmane.io" To: 39408@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Feb 03 20:11:42 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1iyh8H-000PI7-CF for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 03 Feb 2020 20:11:41 +0100 Original-Received: from localhost ([::1]:46264 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iyh8G-0003Qd-7S for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 03 Feb 2020 14:11:40 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54500) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iyh7g-0003QR-5x for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:11:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iyh7e-0004q9-GT for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:11:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36244) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iyh7e-0004pJ-CC for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:11:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iyh7e-0005Ag-58 for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:11:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Timo Lilja Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 03 Feb 2020 19:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39408 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.158075702119827 (code B ref -1); Mon, 03 Feb 2020 19:11:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 3 Feb 2020 19:10:21 +0000 Original-Received: from localhost ([127.0.0.1]:42217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iyh6z-00059i-2J for submit@debbugs.gnu.org; Mon, 03 Feb 2020 14:10:21 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:41435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iyh49-00055V-QN for submit@debbugs.gnu.org; Mon, 03 Feb 2020 14:07:26 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44983) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iyh46-0001me-6n for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:07:25 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iyh44-0004n3-5U for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:07:21 -0500 Original-Received: from mail-yw1-f68.google.com ([209.85.161.68]:44359) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iyh43-0004jL-JK for bug-gnu-emacs@gnu.org; Mon, 03 Feb 2020 14:07:19 -0500 Original-Received: by mail-yw1-f68.google.com with SMTP id t141so14891028ywc.11 for ; Mon, 03 Feb 2020 11:07:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5en7Eiav0zWzMBw39vVn5cYXTtXWcY7SgMvlSJriT9A=; b=SysPUoRQbPV3IhaxyfR9++5kF7GkiH9KGeh3aGRtnk/zk3wzBnEH/0w+haZcilNoIY x3CJOIo8H2/+Q77LSlkChrnwGeqoenI9nGo4jc7dDyegMRTC4Ai3lSXsZeJ2WQjqeU7O G7/lcsIoPF3NRCaDvRFJ5uZpfv4EJkrLqdp3qiuPVBxJATBSg0Di2PEGDzGZ46yBEAgn kb7zUFsHZuu4R7Rr44m3Bhpi1h97xfajLxb7iBIuuU9Wl1MwO28FWmxgGy0BTA6dJ2fY C9ovRYxMaGkSXobO/g8CrZCOuLgrvppF3engHJqI2qz4c8Sx0QGT+y5e8SCyhJOfoEm0 RZBA== X-Gm-Message-State: APjAAAUSOOHfeVDIm/IW3RfsC0SuBjNF7a2Hp4HbgmMZe/WHESzq0bGm ny0TpIxncqZm4gaSMK5qKqu7ys6kFFuLUzzkYoYymPf2 X-Google-Smtp-Source: APXvYqynMY8zrZyZmqyb3RL41kgW1K8J9oQcAv4TF6cBkkJIj2tPegq2jWXgXgxtaCVobo+bh+rGvGLG4+uMy5QY5ik= X-Received: by 2002:a5b:5cf:: with SMTP id w15mr9692189ybp.490.1580756836716; Mon, 03 Feb 2020 11:07:16 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Mailman-Approved-At: Mon, 03 Feb 2020 14:10:20 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:175645 Archived-At: --000000000000bab899059db0a148 Content-Type: multipart/alternative; boundary="000000000000bab897059db0a146" --000000000000bab897059db0a146 Content-Type: text/plain; charset="UTF-8" *** Environment - GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.5) of 2019-09-23, modified by Debian - The code looks identical on the relevant parts in Emacs git master *** Steps to reproduce 1. Run emacs $ emacs -q 2. Start remote debugging session M-x gdb RET gdb -i=mi /ssh:vagrant@debug:/vagrant/hello 3. Set a breakpoint in *gud-hello* buffer (gdb) break main Breakpoint 1 at 0x1149: file hello.c, line 6. 4. Run the program to the breakpoint (gdb) run 5. Switch back to source window C-x b hello.c RET 6. Add another breakpoint C-x C-a c-b Emacs becomes unresponsive and the minibuffer is flooded with the following error message: ~File /ssh:vagrant@debug:/vagrant/"/vagrant/hello.c" no longer exists!~ *** Fix 1. Apply patch gdb-tramp-fix.diff $ zcat /usr/share/emacs/26.1/lisp/progmodes/gdb-mi.el.gz >gdb-mi.el $ zcat /usr/share/emacs/26.1/lisp/progmodes/gud.el.gz >gud.el $ patch *** Environment

- GNU Emacs 26.1 (build 2, x86_64-p= c-linux-gnu, GTK+ Version 3.24.5) of
=C2=A0 2019-09-23, modified by Debi= an
- The code looks identical on the relevant parts in Emacs git master<= br>
*** Steps to reproduce

1. Run emacs
=C2=A0 =C2=A0$ emacs -= q

2. Start remote debugging session
=C2=A0 =C2=A0M-x gdb RET gdb = -i=3Dmi /ssh:vagrant@debug:/vagrant/hello

3. Set a breakpoint in *gu= d-hello* buffer
=C2=A0 =C2=A0(gdb) break main
=C2=A0 =C2=A0Breakpoint= 1 at 0x1149: file hello.c, line 6.

4. Run the program to the breakp= oint
=C2=A0 =C2=A0(gdb) run

5. Switch back to source window
= =C2=A0 =C2=A0C-x b hello.c RET

6. Add another breakpoint
=C2=A0 = =C2=A0C-x C-a c-b

Emacs becomes unresponsive and the minibuffer is f= looded with the
following error message:

~File /ssh:vagrant@debug= :/vagrant/"/vagrant/hello.c" no longer exists!~

*** Fix

1. Apply patch gdb-tramp-fix.diff
=C2=A0 =C2=A0$ zc= at /usr/share/emacs/26.1/lisp/progmodes/gdb-mi.el.gz >gdb-mi.el
=C2= =A0 =C2=A0$ zcat /usr/share/emacs/26.1/lisp/progmodes/gud.el.gz >gud.el<= br>=C2=A0 =C2=A0$ patch <gdb-tramp-fix.diff

2. run emacs with mod= ified gdb-mi.el and gud.el
=C2=A0 =C2=A0$ emacs -q -l el/gdb-mi.el -l el= /gud.el

3. Setting breakpoints with C-x C-a C-b should work now
<= br>The changes in ~gdb-mi.el~ fix the problem with the "no longer exis= t"
error message.

The change in ~gud.el~ makes the fringe ma= rk work a bit better and also
the source buffer to pop up when a break p= oint is hit.

The problem seems to be that not all filename informati= on goes through
(gdb-jsonify-buffer) but gdb-mi.el and gud.el read them = directly from
gdb's buffers. These patches check wheter a gdb buffer= is remote, and
wrap the file names accordingly.

There is probabl= y a better way to fix the problem, but my knowledge=C2=A0
of gdb-= mi.el is limited.

Relates to bug #23608.

*** Affected = functions
(gdb-place-breakpoints)
(gdb-get-location)
(gdb-goto-bre= akpoint)
(gdb-frame-handler)
(gud-file-name)

*** References- https:= //debbugs.gnu.org/cgi/bugreport.cgi?bug=3D23608


--000000000000bab897059db0a146-- --000000000000bab899059db0a148 Content-Type: text/x-patch; charset="US-ASCII"; name="gdb-tramp-fix.diff" Content-Disposition: attachment; filename="gdb-tramp-fix.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k66tploi0 LS0tIGdkYi1taS5lbC5vcmlnCTIwMjAtMDEtMjYgMTg6NDY6MzUuMzUxNzQxNTI1ICswMjAwCisr KyBnZGItbWkuZWwJMjAyMC0wMS0yMiAwOTo1ODowMS40NDU4MzQwMDcgKzAyMDAKQEAgLTI2OTMs NyArMjY5Myw3IEBACiAgICAgKGxldCAoKHJlbW90ZSAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRp cmVjdG9yeSkpKQogICAgICAgKHdoZW4gcmVtb3RlCiAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50 LW1pbikpCi0gICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgIltcXFssXWZ1bGxuYW1l PVwiXFwoLitcXClcIiIgbmlsIHQpCisgICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQg IixmdWxsbmFtZT1cIlxcKC4rXFwpXCIiIG5pbCB0KQogICAgICAgICAgIChyZXBsYWNlLW1hdGNo IChjb25jYXQgcmVtb3RlICJcXDEiKSBuaWwgbmlsIG5pbCAxKSkpKQogICAgIChnb3RvLWNoYXIg KHBvaW50LW1pbikpCiAgICAgKHdoZW4gZml4LWtleQpAQCAtMjk2Nyw2ICsyOTY3LDEzIEBACiAg ICAgKGluc2VydCAoZ2RiLXRhYmxlLXN0cmluZyB0YWJsZSAiICIpKQogICAgIChnZGItcGxhY2Ut YnJlYWtwb2ludHMpKSkKIAorKGRlZnVuIGZpeC1maWxlbmFtZSAoZmlsZW5hbWUpCisgIChsZXQg KChyZW1vdGUgKGZpbGUtcmVtb3RlLXAgZGVmYXVsdC1kaXJlY3RvcnkpKSkKKyAgICAoaWYgKGFu ZCByZW1vdGUgZmlsZW5hbWUgKG5vdCAoZmlsZS1yZW1vdGUtcCBmaWxlbmFtZSkpKQorICAgICAg ICAoY29uY2F0IHJlbW90ZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJeXFxcIlxcKC4rXFwp XCIiICJcXDEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsZW5hbWUgbmlsKSkKKyAgICAgIGZpbGVuYW1lKSkpCisKIDs7IFB1dCBicmVha3BvaW50 IGljb25zIGluIHJlbGV2YW50IG1hcmdpbnMgKGV2ZW4gdGhvc2Ugc2V0IGluIHRoZSBHVUQgYnVm ZmVyKS4KIChkZWZ1biBnZGItcGxhY2UtYnJlYWtwb2ludHMgKCkKICAgOzsgUmVtb3ZlIGFsbCBi cmVha3BvaW50LWljb25zIGluIHNvdXJjZSBidWZmZXJzIGJ1dCBub3QgYXNzZW1ibGVyIGJ1ZmZl ci4KQEAgLTI5ODAsNyArMjk4Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBhbiBhc3NvY2lhdGl2ZSBsaXN0CiAgICAgICAgICAgIChsaW5lIChiaW5kYXQt Z2V0LWZpZWxkIGJyZWFrcG9pbnQgJ2xpbmUpKSkKICAgICAgICh3aGVuIGxpbmUKLSAgICAgICAg KGxldCAoKGZpbGUgKGJpbmRhdC1nZXQtZmllbGQgYnJlYWtwb2ludCAnZnVsbG5hbWUpKQorICAg ICAgICAobGV0ICgoZmlsZSAoZml4LWZpbGVuYW1lIChiaW5kYXQtZ2V0LWZpZWxkIGJyZWFrcG9p bnQgJ2Z1bGxuYW1lKSkpCiAgICAgICAgICAgICAgIChmbGFnIChiaW5kYXQtZ2V0LWZpZWxkIGJy ZWFrcG9pbnQgJ2VuYWJsZWQpKQogICAgICAgICAgICAgICAoYnB0bm8gKGJpbmRhdC1nZXQtZmll bGQgYnJlYWtwb2ludCAnbnVtYmVyKSkpCiAgICAgICAgICAgKHVubGVzcyAoYW5kIGZpbGUgKGZp bGUtZXhpc3RzLXAgZmlsZSkpCkBAIC0zMDE5LDcgKzMwMjYsNyBAQAogCShtZXNzYWdlLWJveCAi Q2Fubm90IGZpbmQgc291cmNlIGZpbGUgZm9yIGJyZWFrcG9pbnQgbG9jYXRpb24uCiBBZGQgZGly ZWN0b3J5IHRvIHNlYXJjaCBwYXRoIGZvciBzb3VyY2UgZmlsZXMgdXNpbmcgdGhlIEdEQiBjb21t YW5kLCBkaXIuIikpCiAgICAgICAodGhyb3cgJ2ZpbGUtbm90LWZvdW5kIG5pbCkpCi0gICAgKHdp dGgtY3VycmVudC1idWZmZXIgKGZpbmQtZmlsZS1ub3NlbGVjdCAobWF0Y2gtc3RyaW5nIDEpKQor ICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChmaW5kLWZpbGUtbm9zZWxlY3QgKGZpeC1maWxlbmFt ZSAobWF0Y2gtc3RyaW5nIDEpKSkKICAgICAgIChnZGItaW5pdC1idWZmZXIpCiAgICAgICA7OyBv bmx5IHdhbnQgb25lIGJyZWFrcG9pbnQgaWNvbiBhdCBlYWNoIGxvY2F0aW9uCiAgICAgICAoZ2Ri LXB1dC1icmVha3BvaW50LWljb24gKGVxIGZsYWcgP3kpIGJwdG5vIChzdHJpbmctdG8tbnVtYmVy IGxpbmUpKSkpKQpAQCAtMzk3Nyw3ICszOTg0LDcgQEAKICAgICAobGV0ICgoYnJlYWtwb2ludCAo Z2V0LXRleHQtcHJvcGVydHkgKHBvaW50KSAnZ2RiLWJyZWFrcG9pbnQpKSkKICAgICAgIChpZiBi cmVha3BvaW50CiAgICAgICAgICAgKGxldCAoKGJwdG5vIChiaW5kYXQtZ2V0LWZpZWxkIGJyZWFr cG9pbnQgJ251bWJlcikpCi0gICAgICAgICAgICAgICAgKGZpbGUgIChiaW5kYXQtZ2V0LWZpZWxk IGJyZWFrcG9pbnQgJ2Z1bGxuYW1lKSkKKyAgICAgICAgICAgICAgICAoZmlsZSAgKGZpeC1maWxl bmFtZSAoYmluZGF0LWdldC1maWVsZCBicmVha3BvaW50ICdmdWxsbmFtZSkpKQogICAgICAgICAg ICAgICAgIChsaW5lICAoYmluZGF0LWdldC1maWVsZCBicmVha3BvaW50ICdsaW5lKSkpCiAgICAg ICAgICAgICAoc2F2ZS1zZWxlY3RlZC13aW5kb3cKICAgICAgICAgICAgICAgKGxldCogKChidWZm ZXIgKGZpbmQtZmlsZS1ub3NlbGVjdApAQCAtNDM3Myw3ICs0MzgwLDcgQEAKICAgKGxldCAoKGZy YW1lIChiaW5kYXQtZ2V0LWZpZWxkIChnZGItanNvbi1wYXJ0aWFsLW91dHB1dCkgJ2ZyYW1lKSkp CiAgICAgKHdoZW4gZnJhbWUKICAgICAgIChzZXRxIGdkYi1zZWxlY3RlZC1mcmFtZSAoYmluZGF0 LWdldC1maWVsZCBmcmFtZSAnZnVuYykpCi0gICAgICAoc2V0cSBnZGItc2VsZWN0ZWQtZmlsZSAo YmluZGF0LWdldC1maWVsZCBmcmFtZSAnZnVsbG5hbWUpKQorICAgICAgKHNldHEgZ2RiLXNlbGVj dGVkLWZpbGUgKGZpeC1maWxlbmFtZSAoYmluZGF0LWdldC1maWVsZCBmcmFtZSAnZnVsbG5hbWUp KSkKICAgICAgIChzZXRxIGdkYi1mcmFtZS1udW1iZXIgKGJpbmRhdC1nZXQtZmllbGQgZnJhbWUg J2xldmVsKSkKICAgICAgIChzZXRxIGdkYi1mcmFtZS1hZGRyZXNzIChiaW5kYXQtZ2V0LWZpZWxk IGZyYW1lICdhZGRyKSkKICAgICAgIChsZXQgKChsaW5lIChiaW5kYXQtZ2V0LWZpZWxkIGZyYW1l ICdsaW5lKSkpCi0tLSBndWQuZWwub3JpZwkyMDIwLTAxLTI2IDE4OjQ2OjQxLjU2Mzc4OTE4OSAr MDIwMAorKysgZ3VkLmVsCTIwMjAtMDEtMjYgMjI6Mjk6MzguMDUzOTc1MzQ2ICswMjAwCkBAIC0z MDEsNyArMzAxLDggQEAKICAgOzsgcmVtb3RlIHBhcnQgdG8gZiwgd2hpY2ggaXMgdGhlIGxvY2Fs IGZpbGUgbmFtZS4gIEZvcnR1bmF0ZWx5LAogICA7OyBgZmlsZS1yZW1vdGUtcCcgcmV0dXJucyBl eGFjdGx5IHRoaXMgcmVtb3RlIGZpbGUgbmFtZSBwYXJ0IChvcgogICA7OyBuaWwgb3RoZXJ3aXNl KS4KLSAgKHNldHEgZiAoY29uY2F0IChvciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9y eSkgIiIpIGYpKQorICAodW5sZXNzIChmaWxlLXJlbW90ZS1wIGYpCisgICAgKHNldHEgZiAoY29u Y2F0IChvciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSkgIiIpIGYpKSkKICAgKGlm IChmaWxlLWV4aXN0cy1wIGYpIChleHBhbmQtZmlsZS1uYW1lIGYpCiAgICAgKGxldCAoKGRpcmVj dG9yaWVzIChndWQtdmFsICdkaXJlY3RvcmllcykpCiAJICAocmVzdWx0IG5pbCkpCg== --000000000000bab899059db0a148--