Andrew Nesbit <andrew(a)siru.org> writes:
On 20 Mar 2005, at 18:18, Adrian Aichner wrote:
> Another hint:
>
> Get rid of any tramp buffers staying around from previous sessions,
> while debugging.
Hi Adrian. Yes, I've been doing this. In fact, having stale tramp
buffers around often stops it working at all.
> Use
> (setq tramp-debug-buffer t)
> and see if that reveals any problems in buffers named
> *debug tramp/sshx ...
> *tramp/sshx ...
> or similar.
>
> For the ssh methods I had to specify two -t switches to avoid a
> pseudo-terminal not allocated warning.
Did you do this on OS X? When I was using GNU Emacs on Jaguar, there
No, only on Windows XP in a native Windows XEmacs
XEmacs 21.5 (beta20) "cilantro" (+CVS-20050314) [Lucid] (i586-pc-win32, Mule)
of Tue Mar 15 2005 on D5DC120J
was a bug in the operating system which had to be worked around by
setting process-connection-type to nil (as opposed to its default
value of t). But Apple fixed this in the Panther release, so this
workaround was no longer necessary. Are you referring to this?
Nope
Anyway, using sshx doesn't help.
>> C-x C-f /[machine.name]:~/ TAB TAB
>
> You're not using that : in the line above, right?
>
> That would not be proper syntax.
Ah, of course not :-) The colon there was just a typo. I should've
used something like cut & paste, or something, instead.
:-)
> Ah, you should load the .el file instead of the .elc file for a better
> *Backtrace*.
>
> Don't know which file it would be in this case, but you could load all
> tramp*.el files for debugging.
OK, I did this by renaming all the *.elc files in the tramp package to
give them a "disable" suffix, and then restarting XEmacs. For my own
future reference, is there a better way than this?
I would just mark all .el files in dired by extension or regexp, then
do L in dired.
% e runs the command dired-mark-extension
L runs the command dired-do-load
Debugger entered--Lisp error: (invalid-state "Bogus value for
`default-process-coding-system'" nil)
signal(invalid-state ("Bogus value for
`default-process-coding-system'" nil))
byte-code("..." [buf data kill-buffer signal] 3)
find-file-noselect("/[ssh/127.0.0.1]/Users/andrew/README")
mapcar(find-file-noselect ("/[ssh/127.0.0.1]/Users/andrew/README"))
find-file-noselect("/[127.0.0.1]~/README" nil nil t)
#<compiled-function (filename &optional codesys wildcards)
"...(53)" [coding-system-for-read wildcards filename codesys value
get-coding-system find-file-noselect nil mapcar switch-to-buffer] 6
1033199 (list (read-file-name "Find file: ") (and current-prefix-arg
...) t)>("/[127.0.0.1]~/README" nil t)
call-interactively(find-file)
N.B. I've changed my test case, but it the results are essentially the
same.
I've found that disabling the remote uuencode and uudecode command
line tools makes the problem go away. Of course this is not the
correct solution. In this case, the tramp debug buffer shows that
their nonexistence is detected, tramp uses its own encoding/decoding
commands, and then decoding of the requested file is done locally with
base64-decode-region and it's OK.
Now that sounds familiar!
See
https://sourceforge.net/tracker/?func=detail&atid=350001&aid=1052...
where I had issues with mimencode at SourceForge?
In the buggy case, the tramp debug buffer shows
# Decoding remote file /[ssh/127.0.0.1]/Users/andrew/README with
function uudecode-decode-region...
at which point the debugger comes on and I see the backtrace.
Is this helpful?
Yes, thanks.
Andrew
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/