Вывод, который мы получаем при печати исходных текстов C++ из Eclipse, довольно уродлив.
Есть ли способ / плагин для красивой печати исходного кода C++, например, с a2ps (который, вероятно, использует еще один фильтр для исходного кода C)?





См. Статью о DDJ, в которой записать используется в качестве красивого механизма печати.
Я также использую для этого enscript. Вот псевдоним, который я часто использую:
alias cpp2ps='enscript --color --pretty-print=cpp --language=PostScript'
и я использую это так:
cpp2ps -P main.ps main.cpp
В enscript есть несколько других отличных опций, включая вращение, вывод в 2 столбца, номера строк, верхние / нижние колонтитулы и т. д. Ознакомьтесь с страница руководства Enscript.
Кроме того, на Mac XCode очень хорошо печатает код C++.
Я хотел бы расширить ответ Windows 7, потому что некоторые ключевые шаги не учтены:
0) Если у вас нет python GDB, откройте оболочку / команду и используйте MinGW-get.exe для «установки» GDB с поддержкой Python, например
MinGw-get.exe install gdb-python
1a) Получите Python 2.7.x из http://python.org/download/ и установите
1b) Убедитесь, что PYTHONPATH и PYTHONHOME установлены в вашей среде:
PYTHONPATH should be C:\Python27\Lib (or similar)
PYTHONHOME should be C:\Python27
1c) Добавьте PYTHONHOME в свой PATH
%PYTHONHOME%;...
2a) Откройте текстовый ввод, введите следующие утверждения. Обратите внимание, что 3-я строка указывая на расположение скриптов Python. См. Примечания ниже об этом!
python
import sys
sys.path.insert(0, 'C:/MinGW/share/gcc-4.6.1/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
2b) Сохранить как '.gdbinit' ПРИМЕЧАНИЕ. Проводник Windows не позволит вам назвать файл, который начинается с с периодом от исследователя. Большинство правок текста (включая Блокнот) позволят вам. GDB init файлы подобны «сценариям» команд GDB, которые GBD выполнит при загрузке.
2c) Файл '.gdbinit' должен находиться в рабочем каталоге GDB (скорее всего, это корневой каталог ваших проектов, но ваша IDE может вам сказать.
3) Откройте диалоговое окно настроек Eclipse (или другой IDE). Перейдите в подменю C++ Debugger.
4) Настройте Eclipse на использование C:\MinGW\bin\gdb-python27.exe в качестве отладчика и .gdbinit в качестве файла конфигурации.
5a) Восстановите все свои конфигурации запуска отладки (удалите старую и создайте новую с нуля).
--OR--
5b) Измените каждую конфигурацию отладки и укажите в ней новый файл gdb-python.exe И укажите его на файл.
- Не забудьте изменить расположение каталога Python в приведенном выше коде Python! Этот каталог создается MinGW, так что не ищите хороших принтеров, MinGW сделал это за вас на нулевом шаге. Просто перейдите к директору установки MinGW, в общую папку, папка GCC (имеет номер версии), и вы найдете папку python. Это место то, что должен быть в скрипте Python, загруженном GDB.
--Кроме того, .gdbinit является PITA, убедитесь, что он правильно назван и находится в рабочей папке GDB. что не обязательно там, где находится gdb-python.exe! Посмотрите на свой вывод GDB при загрузке GDB, чтобы увидеть, появляется ли a) 'python-enabled' во время загрузки и появляются ли операторы в .gdbinit.
- Наконец, у меня было много проблем с системными переменными. Если python выдает «ImportError», то, скорее всего, вы не установили PYTHONPATH или PYTHONHOME.
--Каталог с 'gdb-python27' (например, C: \ MinGW \ bin) также должен быть на вашем пути, и если это так, это немного упрощает настройку eclipse, потому что вам не нужно вводить абсолютные пути . Но все же иногда .gbdinit нуждается в абсолютном пути. если он работает, вы увидите вывод gbd (console-> gdb traces), как это при запуске отладчика:
835,059 4^done
835,059 (gdb)
835,059 5-enable-pretty-printing
835,069 5^done
....
835,129 12^done
835,129 (gdb)
835,129 13source C:\MinGW\bin\.gdbinit
835,139 &"source C:\MinGW\bin\.gdbinit\n"
835,142 13^done
835,142 (gdb)