У меня 32-битный рабочий стол, на котором запущена моя копия emacs.
Я бы хотел иметь возможность отлаживать программу, работающую на очень урезанной 64-битной виртуальной машине qemu.
Виртуальная машина имеет ssh-порт 24054, который дает мне root-доступ без пароля, и на нем установлен gdb.
И у нее есть каталог, который мой рабочий стол вызывает ~ / myco / chip_test, смонтированный как /9p
Итак, если я сделаю файл hello.c в ~ / myco / chip_test, перейдите на 64-битную машину, на которой будет работать виртуальная машина, и скомпилируйте ее с помощью:
$ gcc-o hello -g hello.c
, затем запустить виртуальную машину, и на моем 32-разрядном рабочем столе запустить
$ ssh -p 24054 root @ anvil 'cd / 9p && gdb ./hello '
Тогда gdb отлично работает в режиме командной строки в окне на моем рабочем столе.
Так что теперь, конечно, я хочу, чтобы он работал под emacs, потому что командная строка gdb немного сложначитать, и я хотел бы, чтобы мой курсор шел по файлу и имел окна с переменными наблюденияи т.д.откройте окно отладчика в emacs, и все будет выглядеть правильно, на самом деле я даже могу установить и удалить точки останова, щелкнув по окантовке файла ~ / myco / chip_test / hello.c в моем локальном emacs, который является тем же файлом, что иGDB выглядит как /9p/hello.c, но движущийся курсор не появляется и не перемещается, поэтому все это совершенно бесполезно.
Так что я думаю, что emacs / Gud не совсем понимает, что ~/myco/chip_test/hello.c - это файл, который отладчик считает /9p/hello.c, хотя очевидно, что происходит нечто интересное, поскольку я могу устанавливать точки останова, и поэтому мне интересно, есть ли способ получить ту или иную программув цикле, чтобы перевести имена файлов так, чтобы все просто работало.
Есть идеи, или я просто ошибаюсь?