GNU bug report logs - #5208
23.1.90; M-x gud-gdb: Tab Completion Produces Spurious Ctrl-M Characters

Previous Next

Package: emacs;

Reported by: Steve Revilak <steve <at> srevilak.net>

Date: Sun, 13 Dec 2009 15:50:03 UTC

Severity: normal

Done: nickrob <at> snap.net.nz (Nick Roberts)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5208 in the body.
You can then email your comments to 5208 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Sun, 13 Dec 2009 15:50:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Revilak <steve <at> srevilak.net>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Sun, 13 Dec 2009 15:50:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Steve Revilak <steve <at> srevilak.net>
To: emacs-pretest-bug <at> gnu.org
Subject: 23.1.90; M-x gud-gdb: Tab Completion Produces Spurious Ctrl-M
	Characters
Date: Sun, 13 Dec 2009 10:47:38 -0500
[Message part 1 (text/plain, inline)]
Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the emacs-pretest-bug <at> gnu.org mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug.  If you can, give
a recipe starting from `emacs -Q':

                                * * *

In Emacs 23.1.90.1, tab completion in M-x gud-gdb produces spurious
control-M characters; it almost appears as if Ctrl-M is being appended
to each symbol name offered for completion.

Below, I will give steps to reproduce this behavior, and the results
that I observe when following these steps.  For this example, any time
that you see "^M" (consisting of two characters -- "^" and "M"),
please interpret this as the visual representation of the single
character Ctrl-M (0x0d).

First we will need a C program to debug.  I will use the following
program:

---------- begin demo2.c --------------
#include <stdio.h>

static void add_one(int * x) {
  *x += 1;
}

static void add_two (int * x) {
  *x += 2;
}

int main(void) {
  int val = 0;
  add_one(&val);
  add_two(&val);
  printf("val=%d\n", val);
  return 0;
}
---------- end demo2.c   --------------

STEPS TO REPRODUCE
------------------

(1) Compile demo2.c.
    gcc -g -o demo2 demo2.c

(2) start emacs.
    emacs -Q -nw demo2.c

(3) start the debugger
    M-x gud-gdb RET

    Emacs offers the following:
    "Run gud-gdb (like this): gdb --fullname demo2"

    Press RETURN to accept the gdb command line.

(4) Emacs starts the debugger in buffer "*gud-demo2*", and displays
    the "(gdb)" prompt.

    At the gdb prompt enter the commands

      - b main RETURN
      - run RETURN

(5) Emacs begins to run demo2 under gdb, and breaks in the first line
    of main.

(6) I'd like to set a breakpoint in function "add_one".  At the (gdb)
    prompt in the *gud-demo* buffer, I type "b add TAB".

    After I press TAB, emacs displays a *Completions* buffer with the
    following:
---------------------------------
In this buffer, type RET to select the completion near point.

Possible completions are:
add_fdes^M                add_one^M                 add_profil^M
add_two^M                 addcmd^M                  addr2ascii^M
---------------------------------

    Note that every symbol is suffixed with "^M"

(7) At the (gdb) prompt in the "*gud-demo*" buffer, I type the
    characters "_o", so that the current (gdb) prompt line contains
    "b add_o".  I press TAB to complete the function name.

    *gud-demo* completes the function name, and displays
---------------------------------
(gdb) b add_one^M
---------------------------------

    Note that a "^M" was appended to the completed symbol name.

(8) At the (gdb) prompt, I type RETURN to create the breakpoint.
    Emacs responds with
---------------------------------
Breakpoint 2 at 0x1f88: file demo2.c, line 4.
(gdb) (gdb)
---------------------------------

    Note that *gud-demo* displays two (gdb) prompts after I press RETURN.

(9) At the (gdb) prompt, I type "c RETURN" to continue running demo2.

(10) After reaching the breakpoint in add_one, I type "c RETURN" to
     continue again.  demo2 continues executing and exits.

After demo2 exits, the *gud-demo2* buffer contains the following
contents:

---------------------------------
Current directory is ~/
GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct  2 04:07:49 UTC 2007)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-apple-darwin"...Reading symbols for shared libraries ... done

(gdb) b main
Breakpoint 1 at 0x1fb9: file demo2.c, line 12.
(gdb) run
Starting program: /Users/srevilak/demo2
Reading symbols for shared libraries ++. done

Breakpoint 1, main () at demo2.c:12
(gdb) b add_one^M
Breakpoint 2 at 0x1f88: file demo2.c, line 4.
(gdb) (gdb) c
Continuing.

Breakpoint 2, add_one (x=0xbffff16c) at demo2.c:4
(gdb) c
Continuing.
val=3

Program exited normally.
(gdb)
---------------------------------


HOW THIS DIFFERS FROM EXPECTED BEHAVIOR
---------------------------------------

 * I did not expect to see ^M appended to each symbol name in the
   *completions* buffer (step 6).

 * I did not expect to see ^M appended to the completed symbol name
   (step 7).

 * I did not expect to see the extra (gdb) prompt in step 8.


NOTES:
-----

For this report, gcc is

  $ gcc --version
  i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465)
  Copyright (C) 2005 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gdb is

  $ gdb --version
  GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct  2 04:07:49 UTC 2007)
  Copyright 2004 Free Software Foundation, Inc.
  GDB is free software, covered by the GNU General Public License, and you are
  welcome to change it and/or distribute copies of it under certain conditions.
  Type "show copying" to see the conditions.
  There is absolutely no warranty for GDB.  Type "show warranty" for details.
  This GDB was configured as "i386-apple-darwin".

The operating system is Mac OS X 10.5.8

  $ uname -a
  Darwin oatmeal.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386

The same behavior occurs with

   GNU Emacs 23.1.90.1 (powerpc-apple-darwin8.11.0, NS apple-appkit-824.48)
   on Mac OS X 10.4.11

                                * * *

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/Applications/Emacs.app/Contents/Resources/etc/DEBUG.


In GNU Emacs 23.1.90.1 (i386-apple-darwin9.8.0, NS apple-appkit-949.54)
 of 2009-12-09 on oatmeal.ma.runwaynine.com
Windowing system distributor `Apple', version 10.3.949
configured using `configure  '--with-ns''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
ESC x r e p o r t - e m TAB RET

Recent messages:
("/Applications/Emacs.app/Contents/MacOS/Emacs")
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow mail-extr message ecomplete rfc822 mml mml-sec password-cache
mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045
qp ietf-drums mailabbrev nnheader gnus-util netrc time-date mm-util
mail-prsvr gmm-utils wid-edit mailheader canlock sha1 hex-util hashcash
mail-utils warnings emacsbug sendmail regexp-opt tooltip ediff-hook
vc-hooks lisp-float-type mwheel ns-win easymenu tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev loaddefs button minibuffer faces cus-face text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process ns multi-tty
emacs)
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Mon, 14 Dec 2009 06:35:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to nickrob <at> snap.net.nz (Nick Roberts):
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Mon, 14 Dec 2009 06:35:07 GMT) Full text and rfc822 format available.

Message #10 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: nickrob <at> snap.net.nz (Nick Roberts)
To: Steve Revilak <steve <at> srevilak.net>, 5208-done <at> debbugs.gnu.org
Cc: emacs-pretest-bug <at> gnu.org
Subject: bug#5208: 23.1.90;
	M-x gud-gdb: Tab Completion Produces Spurious Ctrl-M Characters
Date: Mon, 14 Dec 2009 19:30:46 +1300
 > gdb is
 > 
 >    $ gdb --version
 >    GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct  2 04:07:49 UTC 2007)
 >    Copyright 2004 Free Software Foundation, Inc.
 >    GDB is free software, covered by the GNU General Public License, and you are
 >    welcome to change it and/or distribute copies of it under certain conditions.
 >    Type "show copying" to see the conditions.
 >    There is absolutely no warranty for GDB.  Type "show warranty" for details.
 >    This GDB was configured as "i386-apple-darwin".
 > 
 > The operating system is Mac OS X 10.5.8


I think the spurious Ctrl-M characters appeared with Leopard and weren't
present in Tiger but, in any case Apple GDB has it's own behaviours tailored
for their Xcode application.  For best results, and no ^M characters, download
the latest (7.0) FSF gdb (http://sourceware.org/gdb/download/) or checkout
from the CVS repository (http://sourceware.org/gdb/current/) which both build on
Darwin.

I have closed this report since FSF gdb fixes this problem and support of Apple gdb
probably isn't an FSF priority.

-- 
Nick                                           http://users.snap.net.nz/~nickrob



Reply sent to nickrob <at> snap.net.nz (Nick Roberts):
You have taken responsibility. (Mon, 14 Dec 2009 06:35:11 GMT) Full text and rfc822 format available.

Notification sent to Steve Revilak <steve <at> srevilak.net>:
bug acknowledged by developer. (Mon, 14 Dec 2009 06:35:11 GMT) Full text and rfc822 format available.

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Mon, 14 Dec 2009 14:20:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Revilak <steve <at> srevilak.net>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Mon, 14 Dec 2009 14:20:04 GMT) Full text and rfc822 format available.

Message #20 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Steve Revilak <steve <at> srevilak.net>
To: Nick Roberts <nickrob <at> snap.net.nz>
Cc: 5208 <at> debbugs.gnu.org, emacs-pretest-bug <at> gnu.org
Subject: Re: bug#5208: 23.1.90; M-x gud-gdb: Tab Completion Produces
	Spurious Ctrl-M Characters
Date: Mon, 14 Dec 2009 09:10:34 -0500
[Message part 1 (text/plain, inline)]
>From: Nick Roberts <nickrob <at> snap.net.nz>

>I think the spurious Ctrl-M characters appeared with Leopard and weren't
>present in Tiger but, in any case Apple GDB has it's own behaviours tailored
>for their Xcode application.  For best results, and no ^M characters, download
>the latest (7.0) FSF gdb (http://sourceware.org/gdb/download/) or checkout
>from the CVS repository (http://sourceware.org/gdb/current/) which both build on
>Darwin.

Nick,

Thanks for responding, but I object to closing 5208 for two reasons:

  * With Emacs 23.1.90.1, the ^M characters appear under both Mac OS
    10.4.11 and Mac OS 10.5.8.

  * With Emacs 22.3.1, the ^M characters do not appear in Mac OS X
    10.4, nor do they appear in Mac OS X 10.5.

To put it another way:

 --------------------------------------
|                | Emacs 22 | Emacs 23 |
|----------------|----------|----------|
| Mac OS 10.4.11 | No ^M    | Yes ^M   |
| Mac OS 10.5.8  | No ^M    | Yes ^M   |
 --------------------------------------

The ^M issue is correlated with the version of Emacs; not the version
of underlying operating system, and not the gdb binary supplied by the
underlying operating system.

I understand that support for an FSF gdb would be more of a priority
than support for an Apple gdb.  However, since M-x gud-gdb worked
correctly on Mac OS X with Emacs 22, I feel that it should also work
correctly on Mac OS X with Emacs 23.

Steve
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Mon, 14 Dec 2009 14:20:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Revilak <steve <at> srevilak.net>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Mon, 14 Dec 2009 14:20:06 GMT) Full text and rfc822 format available.

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Tue, 15 Dec 2009 06:45:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to nickrob <at> snap.net.nz (Nick Roberts):
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Tue, 15 Dec 2009 06:45:05 GMT) Full text and rfc822 format available.

Message #30 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: nickrob <at> snap.net.nz (Nick Roberts)
To: Steve Revilak <steve <at> srevilak.net>
Cc: emacs-pretest-bug <at> gnu.org
Subject: Re: bug#5208: 23.1.90; M-x gud-gdb: Tab Completion Produces
	Spurious Ctrl-M Characters
Date: Tue, 15 Dec 2009 19:37:02 +1300
 >                                    However, since M-x gud-gdb worked
 > correctly on Mac OS X with Emacs 22, I feel that it should also work
 > correctly on Mac OS X with Emacs 23.

It does work correctly with FSF gdb.  This problem has been reported several
times before but no-one has provided a patch.  I no longer have access to a
Mac and probably wouldn't spend any more time on it anyway.

That it doesn't work with Apple GDB I don't see as a bug, though I'm not an
FSF spokesperson.  Of course, if you or someone else posts a fix, I will be
happy to apply it.

-- 
Nick                                           http://users.snap.net.nz/~nickrob



Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Wed, 16 Dec 2009 03:00:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Revilak <steve <at> srevilak.net>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Wed, 16 Dec 2009 03:00:04 GMT) Full text and rfc822 format available.

Message #35 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Steve Revilak <steve <at> srevilak.net>
To: Nick Roberts <nickrob <at> snap.net.nz>
Cc: emacs-pretest-bug <at> gnu.org
Subject: Re: bug#5208: 23.1.90; M-x gud-gdb: Tab Completion Produces
	Spurious Ctrl-M Characters
Date: Tue, 15 Dec 2009 21:52:55 -0500
[Message part 1 (text/plain, inline)]
>>                                    However, since M-x gud-gdb worked
>> correctly on Mac OS X with Emacs 22, I feel that it should also work
>> correctly on Mac OS X with Emacs 23.

>It does work correctly with FSF gdb.  This problem has been reported several
>times before but no-one has provided a patch.  I no longer have access to a
>Mac and probably wouldn't spend any more time on it anyway.
>
>That it doesn't work with Apple GDB I don't see as a bug, though I'm not an
>FSF spokesperson.  Of course, if you or someone else posts a fix, I will be
>happy to apply it.

Nick,

Thanks again, and I understand your position.  Over the holiday, I'll
try to figure out where the ^M's are coming from, and see if I can
develop a patch.  I've never done serious debugging of Emacs lisp, but
I'm sure it will be a good experience for me.  I'll also have a look
at gdb 7.0

Steve

[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#5208; Package emacs. (Wed, 16 Dec 2009 12:10:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dmitry Dzhus <dima <at> sphinx.net.ru>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Wed, 16 Dec 2009 12:10:07 GMT) Full text and rfc822 format available.

Message #40 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Dmitry Dzhus <dima <at> sphinx.net.ru>
To: bug-gnu-emacs <at> gnu.org
Cc: emacs-pretest-bug <at> gnu.org
Subject: Re: bug#5208: 23.1.90; M-x gud-gdb: Tab Completion Produces Spurious Ctrl-M Characters
Date: Wed, 16 Dec 2009 14:03:31 +0300
Steve Revilak wrote:

> Nick,
>
> Thanks again, and I understand your position.  Over the holiday, I'll
> try to figure out where the ^M's are coming from, and see if I can
> develop a patch.  I've never done serious debugging of Emacs lisp, but
> I'm sure it will be a good experience for me.  I'll also have a look
> at gdb 7.0

In order to make gud-gdb compatible with Apple's GDB, I assume that
perhaps `gud-gdb-fetch-lines-filter` function needs to be changed a
little bit. If Apple's GDB simply appends ^M to every line of `complete`
command output, then it should be possible to just strip these symbols
out.
-- 
Happy Hacking.

http://sphinx.net.ru

bug archived. Request was from Debbugs Internal Request <bug-gnu-emacs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 13 Jan 2010 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 15 years and 158 days ago.

Previous Next


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