Subject: gud/gdb not interacting properly with remote source file

From: vapnik spaknik <[email-masked]>
Date: Sun, 13 Jul 2008 19:57:28 -0700 (PDT)

--text follows this line--
This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing list,
and to the gnu.emacs.bug news group.

In GNU Emacs 21.4.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2007-06-19 on ninsei, modified by Debian
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--with-x=yes' '--with-x-toolkit=athena' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2''
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  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: en_GB.UTF-8
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

I open a remote c file using tramp.
>From within that buffer I do: M-x gdb
and invoke gdb on the executable associated with the c file 
(the executable contains appropriate debugging symbols)
The gud buffer opens correctly and typing "list" and "info source" 
indicates that gdb has the correct source file loaded.
I go to the source buffer in emacs and set a breakpoint using C-x <SPC>
in the gud buffer I see that the breakpoint has been set correctly.
But then when I try stepping through the code using "next", 
a new empty buffer is created whose file path (according to the buffer list) 
is similar to the path of the remote source, except that it is local, 
i.e. instead of "me@remote:/home/me/file.c" it is "/home/me/file.c"
Any further stepping through the code in the gud buffer brings up the new empty
buffer which contains a small white arrow in the left margin as it would 
do normally, except this time it is pointing to an empty line. 
The buffer containing the remote source file does not indicate the point of execution, 
but still allows me to set breakpoints with C-x <SPC>.

If I try debugging with a local file it works fine.

Recent input:
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> n <mouse-movement> <mouse-movement> 
<mouse-movement> <return> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <help-echo> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> <mouse-movement> 
<mouse-movement> <mouse-movement> M-x e m a c s - r 
e p <tab> o <tab> <M-backspace> <M-backspace> r e p 
o r t <tab> <return>

Recent messages:
Loading view...done
Loading eieio-opt (compiled; note, source file is newer)...done
call-interactively: Quit
Type M-x switch-to-buffer-other-window RET to restore the other window.  C-M-v to scroll the help.
Commands: d, s, x, u; f, o, 1, 2, m, v; ~, %; q to quit; ? for help. [3 times]
Mark set
Mark saved where search started [2 times]
gud-query-cmdline: Quit
Command: next 1 [3 times]
Loading emacsbug...done