[Содержание]   [Назад]   [Пред]   [Вверх]   [След]   [Вперед]  


3. Окна DDD

DDD составлен из трех основных окон. Снизу вверх:

PICS/ddd-all

Кроме этих трех главных окон есть еще несколько дополнительных:

  • Панель команд предоставляет кнопки для часто используемых команд. Обычно она располагается поверх окна исходного текста. См. раздел 3.3 Панель команд, для дополнительной информации.
  • Окно машинного кода показывает текущий машинный код. Обычно оно располагается под текущим исходником. См. раздел 8.1 Исследование машинного кода, для получения подробностей.
  • Окно выполнения показывает ввод и вывод отлаживаемой программы. См. раздел 6.2 Использование окна выполнения, для дополнительной информации.

3.1 Полоска меню

Полоска меню DDD предоставляет доступ ко всем функциям DDD.

File
Производит операции с файлами, такие как выбор программ, процессов и сеансов, печать графов, перекомпиляция, а также выход.
Edit
Производит стандартные операции редактирования, такие как вырезка, копирование, вставка и уничтожение выделенного текста. Также позволяет редактировать параметры DDD и ваши предпочтения.
View
Предоставляет доступ к отдельным окнам DDD.
Program
Производит операции, относящиеся к отлаживаемой программе, такие как запуск и останов.
Commands
Производит операции, относящиеся к командам DDD, такие как доступ к истории команд или определение новых команд.
Status
Исследует состояние программы, например, следы вызовов, регистры или нити.
Source
Производит операции, относящиеся к исходному коду, такие как поиск объектов или редактирование точек останова.
Data
Производит операции, относящиеся к данным, такие как редактирование отображений или размещение объектов в графе данных.
Maintenance
Производит операции, полезные для отладки DDD. По умолчанию это меню выключено.
Help
Дает справку по использованию DDD.

Есть два способа выбрать элемент из ниспадающего меню:

  • Выбрать элемент в полоске меню, переместив к нему курсор и щелкнув первой кнопкой мыши. Затем переместить курсор к нужному пункту меню и снова щелкнуть левой кнопкой.
  • Выбрать элемент в полоске меню, переместив к нему курсор и нажав первую кнопку мыши. Не отпуская кнопку, переместите курсор к нужному пункту меню и отпустите кнопку.

Меню также можно отцепить (то есть превратить в постоянное окно), выбрав штриховую линию сверху меню.

Если команда из ниспадающего меню не применима в данной ситуации, то эта команда выключена, а ее имя выводится затененным. Вы не можете вызывать затененные пункты меню. Например, многие команды в меню `Edit' затенены, пока вы не выделите текст, на который они могут действовать; когда вы выделяете блок текста, команды редактирования включаются.

3.1.1 Меню File

Меню `File' содержит операции, относящиеся к файлам, такие как выбор программ, процессов и сеансов, печать графов, перекомпиляция, а также выход из DDD.

Open Program
Open Class
Открыть программу или класс для отладки. См. раздел 4.2.1 Открывание программ, для получения подробностей.
Open Recent
Повторно открыть для отладки программу, которую вы недавно уже открывали. См. раздел 4.2.1 Открывание программ, для получения подробностей.
Open Core Dump
Открыть дамп памяти для отлаживаемой в текущий момент программы. См. раздел 4.2.2 Открывание дампов памяти, для дополнительной информации.
Open Source
Открыть исходный файл отлаживаемой в текущий момент программы. См. раздел 4.2.3 Открывание исходных файлов, для дополнительной информации.
Open Session
Продолжить сохраненный ранее сеанс DDD. См. раздел 2.3.2 Продолжение сеансов, для получения подробностей.
Save Session As
Сохранить текущий сеанс DDD, чтобы его можно было продолжить позднее. См. раздел 2.3.1 Сохранение сеансов, для получения подробностей.
Attach to Process
Подсоединиться к работающему процессу отлаживаемой программы. См. раздел 6.3 Подсоединение к процессу, для получения подробностей.
Detach Process
Отсоединиться от работающего процесса. См. раздел 6.3 Подсоединение к процессу, для получения подробностей.
Print Graph
Напечатать текущий граф на принтере. См. раздел 7.3.6 Печать графа, для дополнительной информации.
Change Directory
Сменить рабочий каталог вашей программы. См. раздел 6.1.3 Рабочий каталог вашей программы, для дополнительной информации.
Make
Запустить программу make. См. раздел 9.2 Перекомпиляция, для получения подробностей.
Close
Закрыть текущее окно DDD.
Restart
Перезапустить DDD.
Exit
Выйти из DDD.

3.1.2 Меню Edit

Меню `Edit' содержит стандартные операции редактирования, такие как вырезка, копирование, вставка и уничтожение выделенного текста. Оно также позволяет редактировать параметры DDD и пользовательские предпочтения.

Undo
Отменить последнее действие. Таким способом можно отменить почти все команды. См. раздел 3.5 Отмена и возврат команд, для дополнительной информации.
Redo
Повторить последнее отмененное действие. Таким способом можно повторить любую отмененную команду. См. раздел 3.5 Отмена и возврат команд, для дополнительной информации.
Cut
Удаляет выделенный блок текста из текущей текстовой области и помещает его в буфер обмена X Windows. Перед выполнением этой команды вы должны выделить область текста -- мышью или с помощью обычных клавиш выделения текста. Этот пункт можно также применять к отображениям (см. раздел 7.3.1.11 Удаление отображений).
Copy
Помещает выделенный блок текста в буфер обмена X Windows. Вы можете выделить текст мышью или с помощью клавиш. См. раздел 3.1.11.2 Настройка меню Edit, об изменении принимаемых по умолчанию привязок клавиш. Этот пункт можно также применять к отображениям (см. раздел 7.3.1.11 Удаление отображений).
Paste
Вставляет текущее значение буфера обмена X Windows в последнюю выбранную текстовую область. Вы можете вставлять текст, который вы поместили в буфер обмена с помощью `Copy' или `Cut'. Кроме того, вы можете использовать `Paste' для вставки текста, помещенного в буфер обмена другими приложениями.
Clear
Очищает последнюю выбранную текстовую область.
Delete
Удаляет выделенный блок текста из последней выбранной текстовой области, но не помещает его в буфер обмена X Windows. Этот пункт можно также применять к отображениям (см. раздел 7.3.1.11 Удаление отображений).
Select All
Выделяет все знаки из последней выбранной текстовой области. См. раздел 3.1.11.2 Настройка меню Edit, об изменении принимаемых по умолчанию привязок.
Preferences
Позволяет вам интерактивно настраивать DDD. См. раздел 3.6 Настройка DDD, для дополнительной информации.
Debugger Settings
Позволяет настроить подчиненный отладчик. См. раздел 3.6.5 Установки отладчика, для получения подробностей.
Save Options
Сохраняет все установки и предпочтения для следующего вызова DDD. См. раздел 3.6.1.3 Сохранение параметров, для получения подробностей.

3.1.3 Меню View

Меню `View' позволяет получать доступ к отдельным окнам DDD.

Command Tool
Открыть и отцентрировать панель команд. См. раздел 3.3 Панель команд, для дополнительной информации.
Execution Window
Открыть отдельное окно выполнения. См. раздел 6.2 Использование окна выполнения, для дополнительной информации.
Debugger Console
Открыть консоль отладчика. См. раздел 10. Интерфейс командной строки, для дополнительной информации.
Source Window
Открыть окно исходного текста. См. раздел 4. Навигация по исходному коду, для получения подробностей.
Data Window
Открыть окно данных. См. раздел 7.3 Отображение сложных значений в окне данных, для получения подробностей.
Machine Code Window
Показать машинный код. См. раздел 8.1 Исследование машинного кода, для получения подробностей.

3.1.4 Меню Program

Меню `Program' производит операции, относящиеся к отлаживаемой программе, такие как запуск и останов.

Большинство этих команд также есть в панели команд (см. раздел 3.3 Панель команд).

Run
Начать выполнение программы, запросив аргументы. См. раздел 6.1 Начало выполнения программы, для получения подробностей.
Run Again
Начать выполнение программы с последними использованными аргументами. См. раздел 6.1 Начало выполнения программы, для получения подробностей.
Run in Execution Window
Если включено, начать выполнение следующей программы в отдельном окне выполнения. См. раздел 6.2 Использование окна выполнения, для дополнительной информации.
Step
Продолжить выполнение программы до тех пор, пока не будет достигнута другая исходная строка, затем остановить программу и вернуть управление DDD. См. раздел 6.5 Продолжение выполнения, для получения подробностей.
Step Instruction
Выполнить одну машинную инструкцию, остановить выполнение и вернуться в DDD. См. раздел 8.2 Выполнение машинного кода, для получения подробностей.
Next
Продолжить до следующей исходной строки в пределах текущего (самого внутреннего) фрейма стека. Это аналогично `Step', но появляющиеся в строке кода вызовы функций выполняются без останова. См. раздел 6.5 Продолжение выполнения, для получения подробностей.
Next Instruction
Выполнить одну машинную инструкцию, но если это вызов функции, пройти до возврата из нее. См. раздел 8.2 Выполнение машинного кода, для получения подробностей.
Until
Продолжить выполнение до тех пор, пока не будет достигнута исходная строка, идущая после текущей, в пределах текущего фрейма стека. См. раздел 6.5 Продолжение выполнения, для получения подробностей.
Finish
Продолжить выполнение до возврата любой функции в выбранном фрейме стека. Напечатать возвращенное значение (если оно есть). См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Continue
Продолжить выполнение программы с того адреса, где она в последний раз остановилась; все установленные по этому адресу точки останова пропускаются. См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Continue Without Signal
Продолжить выполнение, не посылая сигнал. Это полезно, когда ваша программа остановилась из-за сигнала, и если продолжить ее с помощью `Continue', она увидела бы этот сигнал. См. раздел 6.10 Обработка сигналов, для дополнительной информации.
Kill
Уничтожить процесс отлаживаемой программы. См. раздел 6.11 Уничтожение программы, для получения подробностей.
Interrupt
Прервать выполнение программы. Это эквивалентно посыланию процессу сигнала прерывания. См. раздел 5.3 Прерывание, для получения подробностей.
Abort
Аварийно остановить выполнение программы (и, возможно, отладчика). Это эквивалентно посыланию процессу сигнала SIGABRT. См. раздел 2.2 Выход из DDD, для получения подробностей.

3.1.5 Меню Commands

Меню `Commands' производит операции, относящиеся к командам DDD, такие как доступ к истории или определение новых команд.

Большая часть его пунктов на самом деле не предназначены для выполнения через меню; они просто служат для напоминания об эквивалентных командах клавиатуры.

Command History
Просмотреть историю команд. См. раздел 10.1.2 История команд, для получения подробностей.
Previous
Показать предыдущую команду из истории. См. раздел 10.1.2 История команд, для получения подробностей.
Next
Показать следующую команду из истории. См. раздел 10.1.2 История команд, для получения подробностей.
Find Backward
Запустить наращиваемый поиск по истории команд. См. раздел 10.1.2 История команд, для получения подробностей.
Find Forward
Запустить наращиваемый поиск в обратном направлении по истории команд. См. раздел 10.1.2 История команд, для получения подробностей.
Quit Search
Выйти из наращиваемого поиска по истории команд. См. раздел 10.1.2 История команд, для получения подробностей.
Complete
Завершить текущую команду в консоли отладчика. См. раздел 10.1 Ввод команд, для получения подробностей.
Apply
Применить текущую команду в консоли отладчика. См. раздел 10.1 Ввод команд, для получения подробностей.
Clear Line
Очистить текущую командную строку в консоли отладчика. См. раздел 10.1 Ввод команд, для получения подробностей.
Clear Window
Очистить консоль отладчика. См. раздел 10.1 Ввод команд, для получения подробностей.
Define Command
Определить новую команду отладчика. См. раздел 10.5 Определение команд, для дополнительной информации.
Edit Buttons
Настроить кнопки DDD. См. раздел 10.4 Определение кнопок, для дополнительной информации.

3.1.6 Меню Status

Меню `Status' позволяет вам узнать состояние программы, например, просмотреть следы вызовов, регистры или нити.

Backtrace
Показать текущий след вызовов. См. раздел 6.7.2 Следы вызовов, обсуждение этой темы.
Registers
Показать текущее содержимое регистров. См. раздел 8.3 Исследование регистров, для дополнительной информации.
Threads
Показать текущие нити. См. раздел 6.9 Исследование нитей, для дополнительной информации.
Signals
Показать или отредактировать обработку сигналов. См. раздел 6.10 Обработка сигналов, для дополнительной информации.
Up
Выбрать фрейм стека (то есть функцию), в котором была вызвана текущая функция. Это перемещает вас к внешнему фрейму, к фреймам с большими номерами, которые существуют дольше. См. раздел 6.7 Исследование стека, для дополнительной информации.
Down
Выбрать фрейм стека (то есть функцию), который был вызван из текущего. Это перемещает вас к внутреннему фрему, к фреймам с меньшими номерами, которые были созданы не так давно. См. раздел 6.7 Исследование стека, для дополнительной информации.

3.1.7 Меню Source

Меню `Source' производит операции, относящиеся к исходному коду, такие как поиск объектов или редактирование точек останова.

Breakpoints
Редактировать все точки останова. См. раздел 5.1.11 Редактирование всех точек останова, для дополнительной информации.
Lookup ()
Искать аргумент `()' в исходном тексте. См. раздел 4.3.1 Поиск определений, для дополнительной информации.
Find >> ()
Искать следующее появление аргумента `()' в текущем исходном тексте. См. раздел 4.3.2 Текстуальный поиск, для дополнительной информации.
Find << ()
Искать предыдущее появление аргумента `()' в текущем исходном тексте. См. раздел 4.3.2 Текстуальный поиск, для дополнительной информации.
Find Words Only
Если включено, искать только полные слова. См. раздел 4.3.2 Текстуальный поиск, для дополнительной информации.
Find Case Sensitive
Если включено, искать с учетом регистра. См. раздел 4.3.2 Текстуальный поиск, для дополнительной информации.
Display Line Numbers
Если включено, выводить перед строкой исходного текста ее номер. См. раздел 4.4 Настройка окна исходного кода, для получения подробностей.
Display Machine Code
Если включено, показывать машинный код. См. раздел 8.1 Исследование машинного кода, для получения подробностей.
Edit Source
Вызвать редактор для текущего исходного файла. См. раздел 9.1 Редактирование исходного кода, для получения подробностей.
Reload Source
Перезагрузить текущий исходный файл. См. раздел 9.1 Редактирование исходного кода, для получения подробностей.

3.1.8 Меню Data

Меню `Data' производит операции, относящиеся к данным, такие как редактирование отображений или размещение объектов в графе данных.

Displays
Вызывает редактор отображений. См. раздел 7.3.1.10 Редактирование всех отображений, для получения подробностей.
Watchpoints
Редактировать все точки наблюдения. См. раздел 5.2.3 Редактирование всех точек наблюдения, для получения подробностей.
Memory
Показать дамп памяти. См. раздел 7.5 Исследование памяти, для получения подробностей.
Print ()
Напечатать текущее значение `()' в консоли отладчика. См. раздел 7.2 Печать простых значений в консоли отладчика, для получения подробностей.
Display ()
Показать значение `()' в окне данных. См. раздел 7.3 Отображение сложных значений в окне данных, для получения подробностей.
Detect Aliases
Если включено, детектировать разделяемые структуры данных. См. раздел 7.3.4.3 Разделяемые структуры, обсуждение этой темы.
Display Local Variables
Показать все локальные переменные. См. раздел 7.3.1.5 Отображение локальных переменных, для дополнительной информации.
Display Arguments
Показать все аргументы текущей функции. См. раздел 7.3.1.5 Отображение локальных переменных, для дополнительной информации.
Status Displays
Показать текущую отладочную информацию. См. раздел 7.3.1.6 Отображение состояния программы, для дополнительной информации.
Align on Grid
Выравнять все отображения по сетке. См. раздел 7.3.5.3 Выравнивание отображений, для дополнительной информации.
Rotate Graph
Повернуть граф на 90 градусов. См. раздел 7.3.5.5 Поворот графа, для дополнительной информации.
Layout Graph
Переформатировать граф. См. раздел 7.3.5 Компоновка графа, для дополнительной информации.
Refresh
Обновить все значения в окне данных. См. раздел 7.3.1.7 Обновление окна данных, для дополнительной информации.

3.1.9 Меню Menu

Меню `Maintenance' производит операции, которые полезны для отладки DDD.

По умолчанию это меню выключено; включить его можно, специально запросив при запуске DDD (с помощью ключа --maintenance; см. раздел 2.1.2 Ключи DDD). Оно также включается, когда DDD получает фатальный сигнал.

Debug DDD
Вызвать отладчик (обычно GDB) и присоединить его к данному процессу DDD. Это полезно, только если вы сопровождаете DDD.
Dump Core Now
Заставляет данный процесс DDD сбросить дамп памяти. Этого также можно добиться, послав DDD сигнал SIGUSR1.
Tic Tac Toe
Вызвать игру крестики-нолики. Вы должны постараться поставить три знака "стоп" в один ряд, мешая DDD сделать то же самое с черепами. Чтобы перезапустить игру, щелкните на `New Game'.
When DDD Crashes
Выбрать действие, которое предпринимается, когда DDD получает фатальный сигнал.
Debug DDD
Вызвать отладчик для дампа памяти DDD, когда DDD терпит крах. Это полезно, только если вы сопровождаете DDD.
Dump Core
Просто сбросить дамп памяти, когда DDD рушится; не вызывать отладчик. Это принимается по умолчанию, поскольку дамп может содержать важную информацию, необходимую для отладки DDD.
Do Nothing
Не сбрасывать дамп памяти и не вызывать отладчик, когда DDD терпит крах.
Remove Menu
Сделать это меню снова недоступным.

3.1.10 Меню Help

Меню `Help' дает справку по использованию DDD. См. раздел 3.4 Получение справки, как получить справку из DDD.

Overview
Объясняет наиболее важные понятия справочной информации DDD.
On Item
Позволяет вам щелкнуть на объекте для получения справки о нем.
On Window
Дает справку о текущем окне DDD.
What Now?
Подсказывает что делать дальше.
Tip of the Day
Показывает совет дня.
DDD Reference
Показывает руководство по DDD.
DDD News
Показывает, что есть нового в этом выпуске DDD.
Debugger Reference
Показывает интерактивную документацию по подчиненному отладчику.
DDD License
Показывает лицензию DDD (см. раздел G. Универсальная Общественная Лицензия GNU).
DDD WWW Page
Вызывает броузер для веб-страницы DDD.
About DDD
Показывает номер версии и информацию об авторских правах.

3.1.11 Настройка полоски меню

Полоску меню можно настраивать разными способами (см. раздел 3.6 Настройка DDD).

3.1.11.1 Автоматическое поднимание меню

Можно сделать так, чтобы ниспадающие меню поднимались автоматически.

Ресурс: autoRaiseMenu (класс AutoRaiseMenu)
Если `on' (по умолчанию), DDD будет всегда сохранять ниспадающие меню выше главного окна DDD. Если эта установка конфликтует с вашим менеджером окон, или если менеджер окон не поднимает окна автоматически, установите этот ресурс в значение `off'.

Ресурс: autoRaiseMenuDelay (класс AutoRaiseMenuDelay)
Время (в миллисекундах), в течении которого первоначально поднятое окно блокирует другие автоматические поднимания. Это делается для предотвращения входа двух перекрывающихся автоматически поднимаемых окон в цикл автоматического поднимания. По умолчанию это 100.

3.1.11.2 Настройка меню Edit

Меню `Edit' можно по-разному настраивать. Для настройки ключей используйте `Edit => Preferences => Startup'.

Ключ Ctrl+C можно привязать к разным действиям, каждое соответствует своему стандарту интерфейса.

Copy
Привязывает Ctrl+C к операции копирования, как предписывает стандарт интерфейса KDE. При такой установке используйте для прерывания отлаживаемой программы клавишу ESC.
Interrupt
Эта установка (действующая по умолчанию) привязывает Ctrl+C к операции прерывания, как во многих программах UNIX. При такой установке копируйте текст в буфер обмена с помощью Ctrl+Ins.

Ctrl+A тоже можно привязать к разным действиям.

Select All
Эта установка (принимаемая по умолчанию) привязывает Ctrl+A к операции `Select All', как предписывает стандарт интерфейса KDE. При такой установке используйте для перемещения курсора в начало строки клавишу Home.
Beginning of Line
Эта установка привязывает Ctrl+A к операции `Beginning of Line', как во многих программах UNIX для редактирования текста. Для выделения всего текста при такой установке используйте Ctrl+Shift+A.

Вот соответствующие ресурсы DDD:

Ресурс: cutCopyPasteBindings (класс BindingStyle)
Управляет привязками клавиш для операций с буфером обмена.
  • Если это `Motif' (по умолчанию), то вырезка/копирование/вставка находятся на Shift+Del/Ctrl+Ins/Shift+Ins. Это соответствует стандарту интерфейса Motif.
  • Если это `KDE', вырезка/копирование/вставка находятся на Ctrl+X/Ctrl+C/Ctrl+V. Это соответствует стандарту интерфейса KDE. Обратите внимание, Ctrl+C не прерывает отлаживаемую программу; используйте для этого ESC.

Ресурс: selectAllBindings (класс BindingStyle)
Управляет привязкой клавиш для операции `Select All'.
  • Если это `Motif', Select All находится на Shift+Ctrl+A.
  • Если это `KDE' (по умолчанию), Select All находится на Ctrl+A. Так предписывает стандарт интерфейса KDE. Заметьте, что Ctrl+A при этом не перемещает курсор в начало строки; используйте для этого Home.

3.2 Панель инструментов

Некоторые команды DDD требуют аргумента. Аргумент задается в поле аргумента, помеченном как `():'. Есть четыре основных способа задавать аргументы:

  • Вы можете напечатать аргумент вручную.
  • Вы можете вставить текущее выделение в поле аргумента (обычно с помощью второй кнопки мыши). Если вы хотите сначала очистить старое содержимое, щелкните на метку `():'.
  • Вы можете выбрать объект из окна исходника или данных. Тогда этот объект автоматически копируется в поле аргумента.
  • Вы можете выбрать ранее использовавшийся аргумент из ниспадающего меню справа от поля аргументов.

При использовании GDB или Perl поле аргумента предоставляет механизм завершения. Вы можете ввести несколько первых знаков и нажать клавишу TAB для завершения. Повторное нажатие TAB покажет другие варианты завершения.

После ввода аргумента вы можете выбрать одну из трех кнопок справа. С большей частью этих кнопок совмещены меню; это обозначается маленькой стрелкой в верхнем правом углу. Нажатие и удержание на такой кнопке первой кнопки мыши вызовет меню дальнейших операций.

PICS/ddd-toolbar

Это кнопки на панели инструментов. Заметьте, что не все кнопки могут быть неактивными, в зависимости от текущего состояния и возможностей подчиненного отладчика.

Lookup
Найти аргумент `()' в исходном коде. См. раздел 4.3.1 Поиск определений, для дополнительной информации.
Find >>
Найти следующее появление аргумента `()' в текущем исходном коде. См. раздел 4.3.2 Текстуальный поиск, для получения подробностей.
Break/Clear
Включить или выключить точку останова (см. раздел 5.1 Точки останова) в позиции `()'.
Break
Если в позиции `()' нет точки останова, то эта кнопка помечена как `Break'. Щелчок на `Break' устанавливает точку останова в позиции `()'. См. раздел 5.1.1 Установка точек останова, для получения подробностей.
Clear
Если в `()', уже есть точка останова, то эта кнопка помечена как `Clear'. Щелчок на `Clear' очищает (удаляет) точку останова в позиции `()'. См. раздел 5.1.2 Удаление точек останова, для получения подробностей.
Watch/Unwatch
Включить или выключить точку наблюдения (см. раздел 5.2 Точки наблюдения) для выражения `()'.
Watch
Если за `()' не установлено наблюдение, то эта кнопка помечена как `Watch'. Щелчок на `Watch' создает точку наблюдения для выражения `()'. См. раздел 5.2.1 Установка точек наблюдения, для дополнительной информации.
Unwatch
Если за `()' установлено наблюдение, то эта кнопка помечена как `Unwatch'. Щелчок на `Unwatch' очищает (удаляет) точку наблюдения для `()'. См. раздел 5.2.4 Удаление точек наблюдения, для получения подробностей.
Print
Напечатать значение `()' в консоли отладчика. См. раздел 7.2 Печать простых значений в консоли отладчика, для получения подробностей.
Display
Отобразить значение `()' в окне данных. См. раздел 7.3 Отображение сложных значений в окне данных, для получения подробностей.
Plot
Построить график `()' в окне графика. См. раздел 7.4 Построение графика значений, для получения подробностей.
Show/Hide
Переключить подробность в выбранном отображении (или нескольких). См. раздел 7.3.1.3 Показ и скрывание подробностей, обсуждение этой темы.
Rotate
Повернуть выбранное отображение (или несколько). См. раздел 7.3.1.4 Поворот отображений, для получения подробностей.
Set
Установить (изменить) значение `()'. См. раздел 7.3.3 Присваивание переменных, для дополнительной информации.
Undisp
Удалить выделенное отображение (или несколько). См. раздел 7.3.1.11 Удаление отображений, для дополнительной информации.

3.2.1 Настройка панели инструментов

Кнопки панели инструментов DDD могут отображаться в различных стилях, это настраивается через `Edit => Preferences => Startup'.

Images
Позволяет выводить на каждой кнопке панели инструментов рисунок, иллюстрирующий действие.
Captions
Показывать под рисунком название действия.

По умолчанию показываются и рисунки, и названия, но вы можете выбрать только рисунки (для экономии места) или только названия.

PICS/ddd-toolbars

Если вы предпочли не выводить ни рисунков, ни названий, кнопки панели инструментов помечаются так же, как другие кнопки, как в DDD 2.x. Обратите внимание: это подразумевает, что при совмещенной конфигурации окон обычная панель инструментов не может отображаться; она заменяется на две отдельные панели инструментов, как в DDD 2.x.

Если вы включите кнопки `Flat' (по умолчанию), то рамка кнопок панели инструментов будет появляться только тогда, когда над ними находится указатель мыши. Это последнейшее и величайшее изобретение в области графических интерфейсов можно выключить, чтобы рамка кнопок показывалась всегда.

Если вы включите кнопки `Color', рисунки панели инструментов будут расцвечиваться, когда на них заходит указатель мыши. Если DDD собран с Motif 2.0 или более поздним, вы можете также выбрать третью установку, когда кнопки всегда цветные.

Вот соответствующие ресурсы (см. раздел 3.6 Настройка DDD):

Ресурс: activeButtonColorKey (класс ColorKey)
Цветовой ключ @acronym{XPM} для использования в активных кнопках (находящихся под указателем мыши и действующих). `c' означает цвет, `g' (по умолчанию) означает градации серого, а `m' --- монохромное изображение.

Ресурс: buttonCaptions (класс ButtonCaptions)
Выводить кнопки панели инструментов с названиями (`on', по умолчанию) или без (`off'). Если не включены ни рисунки, ни названия, кнопки панели инструментов показываются с обычными метками. Смотрите также `buttonImages' ниже.

Ресурс: buttonCaptionGeometry (класс ButtonCaptionGeometry)
Геометрия фрагмента пиктограммы, содержащего название. По умолчанию это `29x7+0-0'.

Ресурс: buttonImages (класс ButtonImages)
Выводить кнопки панели инструментов с рисунками (`on', по умолчанию) или без (`off'). Если не включены ни рисунки, ни названия, кнопки панели инструментов показываются с обычными метками. Смотрите также `buttonCaptions' выше.

Ресурс: buttonImageGeometry (класс ButtonImageGeometry)
Геометрия фрагмента пиктограммы, содержащего рисунок. По умолчанию это `25x21+2+0'.

Ресурс: buttonColorKey (класс ColorKey)
Цветовой ключ @acronym{XPM} для использования в неактивных кнопках (не находящихся под указателем мыши или нечувствительных). `c' означает цвет, `g' (по умолчанию) означает градации серого, а `m' -- монохромное изображение.

Ресурс: flatToolbarButtons (класс FlatButtons)
Если это `on' (по умолчанию), все кнопки с рисунками или названиями выглядят `плоскими' -- трехмерная рамка показывается, только когда на пиктограмму заходит указатель мыши. Если это `off', трехмерная рамка показывается всегда.

Ресурс: flatDialogButtons (класс FlatButtons)
Если это `on' (по умолчанию), все кнопки диалоговых окон с рисунками или названиями выглядят `плоскими' -- трехмерная рамка показывается, только когда на пиктограмму заходит указатель мыши. Если это `off', трехмерная рамка показывается всегда.

3.3 Панель команд

Панель команд -- это маленькое окно, дающее доступ к самым часто используемым командам DDD. Его можно передвигать поверх окон DDD, но можно и поместить отдельно от них.

По умолчанию панель команд прикрепляется к окну DDD с исходным текстом: куда бы вы не передвинули это окно, панель команд последует за ним, так что расстояние от окна исходного текста до панели команд остается постоянным. Кроме того, по умолчанию панель команд автоматически поднята, то есть всегда остается поверх других окон DDD.

Панель команд можно настроить так, чтобы она отображалась в виде командной полоски меню в верхней части окна исходника; смотрите `Edit => Preferences => Source => Tool Buttons Location' для получения подробностей.

Всякий раз при сохранении состояния DDD, запоминается также расстояние от панели команд до окна исходного текста, так что вы можете выбрать свое собственное предпочтительное расположение панели. Для перемещения панели команд к сохраненной позиции используйте `View => Command Tool'.

PICS/ddd-tool

Это кнопки панели команд. Заметьте, что некоторые кнопки могут быть неактивными, в зависимости от текущего состояния и возможностей подчиненного отладчика.

Run
Начать выполнение программы. Когда вы щелкаете на этой кнопке, ваша программа сразу начинает выполняться. См. раздел 6. Запуск программы, для дополнительной информации.
Interrupt
Прервать выполнение программы. Это эквивалентно посыланию процессу сигнала прерывания. См. раздел 5.3 Прерывание, для дополнительной информации.
Step
Продолжить выполнение вашей программы до тех пор, пока управление не достигнет другой исходной строки, затем остановить выполнение и вернуть управление DDD. См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Stepi
Выполнить одну машинную инструкцию, затем остановить программу и вернуть управление DDD. См. раздел 8.2 Выполнение машинного кода, для дополнительной информации.
Next
Продолжить до следующей исходной строки в текущем (самом внутреннем) фрейме стека. Это аналогично `Step', но появляющиеся на текущей строке вызовы функций выполняются без остановки. См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Nexti
Выполнить одну машинную инструкцию, но если это вызов функции, продолжить до возврата из нее. См. раздел 8.2 Выполнение машинного кода, для дополнительной информации.
Until
Продолжить выполнение до тех пор, пока не будет достигнута строка дальше текущей, в пределах текущего фрейма стека. См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Finish
Продолжить выполнение до возврата функции текущего фрейма стека. Напечатать возвращенное значение (если оно есть). См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Cont
Продолжить выполнение программы с того адреса, где она последний раз остановилась; все установленные по этому адресу точки останова пропускаются. См. раздел 6.5 Продолжение выполнения, для дополнительной информации.
Kill
Уничтожить процесс отлаживаемой программы. См. раздел 6.11 Уничтожение программы, для дополнительной информации.
Up
Выбрать фрейм стека (то есть функцию), которая вызвала текущую. Это переносит к более внешнему фрейму, к более высоким номерам фреймов, к более старым фреймам. См. раздел 6.7 Исследование стека, для получения подробностей.
Down
Выбрать фрейм стека (то есть функцию), которая была вызвана из текущей. Это переносит к более внутреннему фрейму, к более низким номерам фреймов, к более новым фреймам. См. раздел 6.7 Исследование стека, для получения подробностей.
Undo
Отменить последнее действие. Таким способом можно отменить почти все команды. См. раздел 3.5 Отмена и возврат команд, для дополнительной информации.
Redo
Повторить последнее отмененное действие. Таким способом можно повторить любую отмененную команду. См. раздел 3.5 Отмена и возврат команд, для дополнительной информации.
Edit
Вызвать редактор для текущего исходного файла. См. раздел 9.1 Редактирование исходного кода, для получения подробностей.
Make
Запустить программу make с последними заданными аргументами. См. раздел 9.2 Перекомпиляция, для дополнительной информации.

3.3.1 Настройка панели команд

Панель команд можно по-разному настраивать.

См. раздел 10.4.1 Настройка кнопок, для получения информации о настройке командных кнопок.

3.3.1.1 Выключение панели команд

Вы можете выключить панель команд и вынести ее кнопки на отдельную строку под полоской меню. Панель команд выключается установкой `Edit => Preferences => Source => Tool Buttons Location => Source Window'.

PICS/ddd-source-prefs

Вот соответствующие ресурсы:

Ресурс: commandToolBar (класс ToolBar)
Показывать командные кнопки в панели инструментов над окном исходника (`on') или на панели команд (`off', по умолчанию). Включение командной панели инструментов выключает панель команд и наоборот.

3.3.2 Позиция панели команд

Следующие ресурсы управляют позицией панели команд (см. раздел 3.6 Настройка DDD):

Ресурс: autoRaiseTool (класс AutoRaiseTool)
Если это `on' (по умолчанию), DDD всегда будет держать панель команд поверх других окон DDD. Если данная установка конфликтует с вашим менеджером окон, или если менеджер окон все равно хранит панель команд наверху, установите этот ресурс в `off'.

Ресурс: stickyTool (класс StickyTool)
Если это `on' (по умолчанию), панель команд автоматически повторяет любое перемещение окна исходного текста. Всякий раз при перемещении окна исходника панель команд передвигается на такое же расстояние, так что их относительное расположение остается неизменным. Если это `off', панель команд не следует за перемещениями окна исходника.

Ресурс: toolRightOffset (класс Offset)
Расстояние между правой границей панели команд и правой границей исходного текста (в пикселях). По умолчанию это 8.

Ресурс: toolTopOffset (класс Offset)
Расстояние между верхней границей панели команд и верхней границей исходного текста (в пикселях). По умолчанию это 8.

3.3.2.1 Настройка оформления панели команд

Следующие ресурсы управляют оформлением панели команд (см. раздел 3.6 Настройка DDD):

Ресурс: decorateTool (класс Decorate)
Этот ресурс управляет оформлением панели команд.
  • Если это `off', панель команд создается в виде прозрачного окна. Некоторые оконные менеджеры автоматически хранят прозрачные окна поверх их родителей, что подходит для панели команд. Однако, может оказаться, что ваш менеджер окон сконфигурирован таким образом, что прозрачные окна не оформляются, а это означает, что вы не сможете легко передвигать панель команд.
  • Если это `on', DDD отображает панель команд как окно верхнего уровня. Такие окна всегда оформляются оконным менеджером. Однако, окна верхнего уровня не сохраняются автоматически выше других окон, поэтому вам также может пригодиться ресурс `autoRaiseTool'.
  • Если это `auto' (по умолчанию), DDD проверяет, оформляет ли оконный менеджер прозрачные окна. Если да, панель команд отображается как прозрачное окно (как при установке `off'); если нет, панель команд отображается в виде окна верхнего уровня (как при установке `on'). Таким образом, панель команд всегда оформляется "лучшим" методом, но лишняя проверка занимает некоторое время.

3.4 Получение справки

В DDD есть обширная интерактивная справочная система. Здесь описывается, как получить справку, работая в DDD.

  • Вы можете получить короткий справочный текст по большинству кнопок DDD, просто наведя на них указатель мыши. Спустя секунду появится небольшое окно (называемое подсказкой для кнопки или всплывающей подсказкой), которое дает подсказку о назначении кнопки. Подсказка исчезает, когда вы перемещаете указатель мыши к другому объекту.
  • Строка состояния также показывает информацию о текущем выделенном объекте. Щелкнув на строке состояния, вы можете просмотреть последние сообщения.
  • Вы можете получить подробную справку по любому видимому объекту DDD. Просто укажите на интересующий вас объект и нажмите клавишу F1. Это выдаст подробный справочный текст.
  • Все диалоговые окна DDD содержат кнопки `Help', дающие подробную информацию об этом диалоге.
  • Вы можете получить справку по командам отладчика, введя на приглашение отладчика команду help. См. раздел 10.1 Ввод команд, для получения подробностей о вводе команд.
  • Если вы окончательно застряли, попробуйте `Help => What Now?' (пункт `What Now?' из меню `Help') или нажмите Ctrl+F1. В зависимости от текущего состояния DDD даст вам несколько подсказок о возможных дальнейших действиях.
  • Разумеется, вы всегда можете обратиться к интерактивной документации:
    • `Help => DDD Reference' предоставляет доступ к руководству по DDD, самому полному справочнику.
    • `Help => Debugger Reference' показывает интерактивную документацию по подчиненному отладчику.
    • `Help => DDD WWW Page' предоставляет доступ к последней информации о DDD.
  • Наконец, совет дня DDD дает важные сообщения при каждом вызове DDD.

Все эти функции можно по-разному настраивать (см. раздел 3.6.2 Настройка справки DDD).

Если все-таки вы допустили ошибку, не беспокойтесь: почти все команды DDD можно отменить. См. раздел 3.5 Отмена и возврат команд, для дополнительной информации.

3.5 Отмена и возврат команд

Почти любую команду DDD можно отменить, используя `Edit => Undo' или кнопку `Undo' из панели команд.

Аналогично, `Edit => Redo' повторяет последнюю отмененную команду.

Меню `Edit' показывает, какие команды будут отменены или повторены следующими; это также указывается во всплывающей справке для кнопок `Undo' и `Redo'.

3.6 Настройка DDD

DDD контролируется несколькими ресурсами -- определяемыми пользователем переменными, которым можно придавать особые значения для управления поведением DDD и его настройки.

Большинство ресурсов DDD можно установить интерактивно, когда DDD работает, или при запуске DDD. См. раздел Указатель ресурсов, полный список ресурсов DDD.

Сначала мы обсудим работу настройки вообще; потом перейдем к настройке тех частей DDD, о которых уже говорилось.

3.6.1 Как работает настройка DDD

3.6.1.1 Ресурсы

Подобно любой программе для X Windows, DDD может получить значения ресурсов из нескольких источников. Для DDD, наиболее важными являются такие:

  • Файл `~/.ddd/init' (`~' обозначает ваш начальный каталог). DDD считывает этот файл при запуске; определенные в нем ресурсы перекрывают все остальные источники (кроме ресурсов, неявно заданных в аргументах командной строки). Если установлена переменная среды DDD_STATE, вместо `~/.ddd/' используется ее значение.
  • Файл ресурсов по умолчанию `Ddd'. Этот файл обычно закомпилирован в исполняемый файл DDD. Если он существует, то определяемые в нем значения ресурсов перекрывают закомпилированные значения. Если версия файла ресурсов по умолчанию `Ddd' не совпадает с версией исполняемого файла DDD, DDD может работать неправильно; в таком случае вам выдадут предупреждение.(8)
  • Ключи командной строки. Эти ключи перекрывают все остальные установки ресурсов.
  • Если установлена переменная среды DDD_SESSION, то она обозначает имя сеанса, который следует начать, и перекрывает все ключи и ресурсы. Это применяется, только когда DDD перезапускает сам себя.

Не для каждого ресурса есть соответствующий ключ командной строки. Каждый ресурс (в файле `~/.ddd/init' или `Ddd') определяется с помощью строки

Ddd*ресурс: значение

Например, чтобы установить ресурс `pollChildStatus' в значение `off', вы написали бы в файле `~/.ddd/init' так:

Ddd*pollChildStatus: off

Подробности о синтаксисе спецификаций ресурсов вы можете найти в разделе RESOURCES страницы man X(1).

3.6.1.2 Изменение ресурсов

Вы можете изменить ресурсы DDD тремя способами:

  • Использовать DDD для изменения параметров, а именно `Edit => Preferences'. Это работает для большинства важных ресурсов DDD. Не забудьте сохранить параметры (см. раздел 3.6.1.3 Сохранение параметров), чтобы они применялись и к другим сеансам DDD.
  • Кроме того, вы можете вызывать DDD с подходящими ключами командной строки. Это изменяет соответствующий ресурс для данного конкретного экземпляра DDD. Однако, если вы сохраните параметры (см. раздел 3.6.1.3 Сохранение параметров), измененный ресурс будет также применяться к будущим вызовам.
  • И наконец, вы можете установить нужный ресурс в файле `.ddd/init' в вашем начальном каталоге. См. раздел Указатель ресурсов, список ресурсов DDD.

3.6.1.3 Сохранение параметров

Вы можете сохранить текущие установки параметров, выбрав `Edit => Save Options'. Параметры записываются в файл с именем `.ddd/init' в вашем начальном каталоге. Если активен сеанс сеанс, то параметры сохраняются в файле `~/.ddd/sessions/сеанс/init'.

3.6.2 Настройка справки DDD

Справочную систему DDD можно по-разному настраивать.

3.6.2.1 Подсказки для кнопок

Подсказки для кнопок помогают новичкам, но могут отвлекать опытных пользователей. Вы можете выключить всплывающие подсказки через `Edit => Preferences => General => Automatic display of Button Hints => as Popup Tips'.

Вы можете также выключить подсказки, отображаемые в строке состояния. Просто переключите `Edit => Preferences => General => Automatic Display of Button Hints => in the Status Line'.

Вот соответствующие ресурсы DDD (см. раздел 3.6 Настройка DDD):

Ресурс: buttonTips (класс Tips)
Если `on' (по умолчанию), подсказки для кнопок включены.

Ресурс: buttonDocs (класс Docs)
Если `on' (по умолчанию), подсказки для кнопок отображаются в строке состояния.

3.6.2.2 Совет дня

Вы можете выключить совет дня, переключив `Edit => Preferences => Startup => Startup Windows => Tip of the Day'.

Соответствующий ресурс DDD (см. раздел 3.6 Настройка DDD):

Ресурс: startupTips (класс StartupTips)
Если это `on' (по умолчанию), показывать совет дня при запуске DDD.

См. раздел 2.1.2 Ключи DDD, как установить этот ресурс из командной строки при запуске DDD.

Сами советы контролируются следующими ресурсами (см. раздел 3.6 Настройка DDD):

Ресурс: startupTipCount (класс StartupTipCount)
Номер n совета дня, который следует показать при запуске. Смотрите также ресурсы `tipn'.

Ресурс: tipn (класс Tip)
Совет дня с номером n (строка).

3.6.2.3 Вспомогательные программы

DDD полагается на несколько внешних программ, которые задаются через `Edit => Preferences => Helpers'.

PICS/ddd-helpers

Для декомпрессии справочных текстов вы можете определить команду `Uncompress':

Ресурс: uncompressCommand (класс UncompressCommand)
Команда для декомпрессии встроенного руководства по DDD, лицензии DDD и новостей DDD. Принимает сжатый текст со стандартного ввода и пишет разжатый текст на стандартный вывод. По умолчанию используется gzip -d -c; другие типичные значения включают zcat и gunzip -c.

Для просмотра веб-страниц вы можете определить команду `Web Browser':

Ресурс: wwwCommand (класс WWWCommand)
Команда для запуска WWW-броузера. Строка `@URL@' заменяется на @acronym{URL}, который нужно открыть. По умолчанию сначала пробуется уже запущенный Netscape (mozilla, затем netscape), потом $WWWBROWSER, потом DDD пытается запустить новый процесс Netscape, потом пробуется запущенный Emacs, потом вызывается Mosaic, а потом Lynx в xterm.

Чтобы указать в качестве броузера `netscape-4.0', используйте такую установку:

Ddd*wwwCommand: \
     netscape-4.0 -remote 'openURL(@URL@)' \
  || netscape-4.0 '@URL@'

Эта команда сначала пытается соединиться с работающим броузером netscape-4.0; если это не получается, она запускает новый процесс netscape-4.0.

Это WWW-страница, которая показывается по умолчанию командой `Help ' DDD WWW Page:

Ресурс: wwwPage (класс WWWPage)
WWW-страница DDD. Значение: http://www.gnu.org/software/ddd/

3.6.3 Настройка отмены

Отмену команд можно настраивать в нескольких аспектах.

Чтобы установить максимальный размер буфера отмены, установите `Edit => Preferences => General => Undo Buffer Size'.

Это соответствует ресурсу `maxUndoSize':

Ресурс: maxUndoSize (класс MaxUndoSize)
Максимальный объем памяти (в байтах) для буфера отмены. Полезно для ограничения затрат памяти. Отрицательная величина означает, что ограничения нет. По умолчанию принимается 2000000, или 2000 килобайт.

Вы можете также ограничить число вхождений в буфере отмены, безотносительно его размера (см. раздел 3.6 Настройка DDD):

Ресурс: maxUndoDepth (класс MaxUndoDepth)
Максимальное число вхождений в буфере отмены. Это ограничивает количество действий, которые можно будет отменить, и количество показываемых состояний в историческом режиме. Полезно для ограничения затрат памяти. Отрицательная величина (по умолчанию) означает, что ограничения нет.

Чтобы очистить буфер отмены в любое время, уменьшив таким образом объем занятой памяти, используйте `Edit => Preferences => General => Clear Undo Buffer'.

3.6.4 Настройка окон DDD

Окна DDD можно по-разному настраивать.

3.6.4.1 Заставка

Вы можете выключить заставку, которая показывается при запуске. Для этого просто выберите `Edit => Preferences => Startup DDD Splash Screen'.

PICS/ddd-startup-prefs

Это значение применяется только к следующему запуску DDD.

С этой установкой связан следующий ресурс:

Ресурс: splashScreen (класс SplashScreen)
Если `on' (по умолчанию), показывать при запуске заставку DDD.

Вы можете также управлять внешним видом заставки (см. раздел 3.6 Настройка DDD):

Ресурс: splashScreenColorKey (класс ColorKey)
Цветовой ключ для заставки DDD. Возможные значения включают:
  • `c' (по умолчанию) цветное изображение,
  • `g' много градаций серого,
  • `g4' четыре градации серого,
  • `m' монохромное изображение.
  • `best' подбирает наилучший вариант для вашего дисплея.

Пожалуйста, обратите внимание: если DDD работает на монохромном дисплее, или если DDD был скомпилирован без библиотеки @acronym{XPM}, может отображаться только монохромная версия (`m').

3.6.4.2 Размещение окон

По умолчанию DDD объединяет команды, исходный код и данные в единое окно верхнего уровня. Чтобы получить отдельные окна верхнего уровня для исходника, данных и консоли отладчика, установите `Edit => Preferences => Startup => Window Layout => Separate Windows'.

PICS/ddd-separate

Соответствующие ресурсы DDD:

Ресурс: separateDataWindow (класс Separate)
Если это `on', окно данных и консоль отладчика отображаются в виде отдельных окон верхнего уровня. Если это `off' (по умолчанию), окно данных соединено с консолью отладчика.

Ресурс: separateSourceWindow (класс Separate)
Если это `on', окно исходника и консоль отладчика отображаются в виде отдельных окон верхнего уровня. Если это `off' (по умолчанию), окно исходника соединено с консолью отладчика.

По умолчанию панели инструментов DDD располагаются в верхней части окна. Если вы предпочитаете, чтобы они находились внизу, как в DDD 2.x и более ранних версиях, установите `Edit => Preferences => Startup => Tool Bar Appearance => Bottom'.

С этой установкой связан ресурс `toolbarsAtBottom':

Ресурс: toolbarsAtBottom (класс ToolbarsAtBottom)
Помещать панели инструментов для исходного кода и данных вверху, соответственно, исходного кода и данных (`off', по умолчанию) или внизу, как в DDD 2.x (`on').

Размещение внизу поддерживается только для отдельных панелей инструментов -- то есть, вы должны либо выбрать раздельные окна, либо сконфигурировать панель инструментов так, чтобы в ней не было ни рисунков, ни названий (см. раздел 3.2.1 Настройка панели инструментов).

Если вы используете соединенные окна, вы можете сделать одну панель инструментов или две. По умолчанию DDD создает две панели инструментов при использовании раздельных окон и выключенных названиях и рисунках, но вы также можете явно изменить данную установку через такой ресурс:

Ресурс: commonToolBar (класс ToolBar)
Показывать кнопки панели инструментов в одной общей панели вверху общего окна DDD (`on', по умолчанию), или помещать их в двух различных панелях инструментов, одной для операций с данными, а другой для операций с исходным текстом, как в DDD 2.x (`off').

Вы также можете изменить позицию строки состояния (см. раздел 3.6 Настройка DDD):

Ресурс: statusAtBottom (класс StatusAtBottom)
Если это `on' (по умолчанию), строка состояния помещается внизу окна DDD для исходного кода. Если это `off', она помещается вверху этого окна (как в DDD 1.x).

См. раздел 2.1.2 Ключи DDD, как установить эти ресурсы из командной строки при запуске DDD.

3.6.4.3 Настройка шрифтов

Вы можете конфигурировать основные шрифты DDD в время работы. Каждый шрифт задается с помощью двух элементов:

  • Семейство шрифтов -- это спецификация шрифтов X, где начальную часть `производитель-' можно опустить, как и любую часть после семейства. Таким образом, обычно достаточно пары `семейство-насыщенность'.
  • Размер шрифта задается в (независящих от разрешения) десятых долях пункта.

Чтобы указать шрифты, выберите `Edit => Preferences => Fonts'.

PICS/ddd-font-prefs

Кнопка `Browse' открывает программу выбора шрифтов, где вы можете интерактивно подбирать шрифты и их атрибуты. Щелчок на `quit' или `select' передает все отличающиеся от принимаемых по умолчанию значения в панель настройки шрифтов DDD.

Используя эту панель, можно установить следующие шрифты:

Default Font
Шрифт DDD по умолчанию, используемый для меток, меню и кнопок. По умолчанию это `helvetica-bold'.
Variable Width
Пропорциональный шрифт DDD, используемый для справочного текста и сообщений. По умолчанию это `helvetica-medium'.
Fixed Width
Равноширинный шрифт DDD, используемый для исходного кода, консоли отладчика, текстовых полей, отображений данных и окна выполнения. По умолчанию это `lucidatypewriter-medium'.

Изменения в этой панели не имеют мгновенного эффекта. Вы можете

  • сохранить параметры (с помощью `Edit => Save Options'), чтобы задействовать изменение в будущих сеансах DDD,
  • или перезапустить DDD (с помощью `File => Restart DDD'), чтобы задействовать их во вновь созданном сеансе.

Когда в этой панели делаются изменения, DDD автоматически предложит вам перезапустить себя, чтобы эти изменения подействовали. Заметьте, что даже после перезапуска вы должны будете сохранить параметры, чтобы ваши изменения стали постоянными.

Кнопка `Reset' восстанавливает последние сохраненные предпочтения.

Вот ресурсы, связанные с заданием шрифтов:

Ресурс: defaultFont (класс Font)
Шрифт DDD по умолчанию, используемый для меток, меню, кнопок, etc. Этот шрифт задается в виде спецификации шрифта X, где начальная часть производитель может быть опущена, как и любая часть после семейства.

Значение по умолчанию -- `helvetica-bold'.

Чтобы установить шрифт DDD по умолчанию равным, скажем, `helvetica medium', вставьте строку

Ddd*defaultFont: helvetica-medium

в ваш файл `~/.ddd/init'.

Ресурс: defaultFontSize (класс FontSize)
Размер шрифта DDD по умолчанию, в десятых долях пункта. Этот ресурс перекрывает любую спецификацию размера шрифта из ресурса `defaultFont' (смотрите выше). Значение по умолчанию равно 120, что задает двенадцатипунктовый шрифт.

Ресурс: variableWidthFont (класс Font)
Пропорциональный шрифт DDD, используемый для справочного текста и сообщений. Этот шрифт задается в виде спецификации шрифта X, где начальная часть производитель может быть опущена, как и любая часть после семейства.

Значение по умолчанию равно `helvetica-medium-r'.

Чтобы установить семейство пропорционального шрифта DDD равным, скажем, `times', вставьте строку

Ddd*fixedWidthFont: times-medium

в ваш файл `~/.ddd/init'.

Ресурс: variableWidthFontSize (класс FontSize)
Размер пропорционального шрифта DDD, в десятых долях пункта. Этот ресурс перекрывает любую спецификацию размера шрифта из ресурса `variableWidthFont' (смотрите выше). Значение по умолчанию равно 120, что задает двенадцатипунктовый шрифт.

Ресурс: fixedWidthFont (класс Font)
Равноширинный шрифт DDD, используемый для исходного кода, консоли отладчика, текстовых полей, отображений данных и окна выполнения. Этот шрифт задается как спецификация шрифта X, где начальная часть производитель может быть опущена, как и любая часть после семейства.

Значение по умолчанию -- `lucidatypewriter-medium'.

Чтобы установить семейство равноширинного шрифта DDD равным, скажем, `courier', вставьте строку

Ddd*fixedWidthFont: courier-medium

в ваш файл `~/.ddd/init'.

Ресурс: fixedWidthFontSize (класс FontSize)
Размер равноширинного шрифта DDD, в десятых долях пункта. Этот ресурс перекрывает любую спецификацию размера шрифта из ресурса `fixedWidthFont' (смотрите выше). Значение по умолчанию равно 120, что задает двенадцатипунктовый шрифт.

Поскольку все ресурсы для задания размеров шрифтов принадлежат одному классу (и по умолчанию имеют одинаковое значение), вы можете легко изменить размер шрифта DDD по умолчанию на, скажем, 9.0 пунктов, вставив строку

Ddd*FontSize: 90

в свой файл `~/.ddd/init'.

Команда для выбора шрифтов задается так:

Ресурс: fontSelectCommand (класс FontSelectCommand)
Команда для выбора шрифта из списка. Строка `@FONT@' заменяется на текущий шрифт DDD по умолчанию; строка `@TYPE@' заменяется на символьное имя редактируемого шрифта DDD. Эта программа должна либо поместить имя выбранного шрифта в первичное выделение, либо напечатать его на стандартный вывод. Типичное значение такое:
Ddd*fontSelectCommand: xfontsel -print

См. раздел 2.1.2 Ключи DDD, как установить эти ресурсы из командной строки при запуске DDD.

3.6.4.4 Переключение окон

Когда окна объединены, как в установке по умолчанию, вы можете включать и выключать отдельные окна DDD переключая соответствующие пункты меню `View' (см. раздел 3.1.3 Меню View). При использовании раздельных окон см. раздел 3.6.4.2 Размещение окон) вы можете закрывать их через `File => Close' или с помощью вашего оконного менеджера.

Следующие ресурсы управляют тем, открыты окна или нет при запуске DDD. Эти ресурсы непосредственно привязаны к пунктам меню `View':

Ресурс: openDataWindow (класс Window)
Если это `off' (по умолчанию), окно данных при запуске закрыто.

Ресурс: openDebuggerConsole (класс Window)
Если это `off', консоль отладчика при запуске закрыта.

Ресурс: openSourceWindow (класс Window)
Если это `off', окно исходного кода при запуске закрыто.

См. раздел 2.1.2 Ключи DDD, как установить эти ресурсы из командной строки при запуске DDD.

3.6.4.5 Текстовые поля

Текстовые поля DDD можно настраивать с помощью следующих ресурсов:

Ресурс: popdownHistorySize (класс HistorySize)
Максимальное число пунктов во всплывающих меню истории значений. Величина 0 (по умолчанию) означает, что ограничения нет.

Ресурс: sortPopdownHistory (класс SortPopdownHistory)
Если это `on' (по умолчанию), пункты всплывающих меню истории значений отсортированы по алфавиту. Если это `off', выше появляются недавно использованные значения.

3.6.4.6 Пиктограммы

Если вы часто переключаетесь между DDD и другими многооконными приложениями, вы можете захотеть установить `Edit => Preferences => General => Iconify all windows at once'. Тогда все окна DDD сворачиваются и разворачиваются вместе.

Это привязано к такому ресурсу:

Ресурс: groupIconify (класс GroupIconify)
Если это `on', при сворачивании (разворачивании) любого окна DDD все остальные окна DDD также сворачиваются (разворачиваются). По умолчанию `off', это означает, что окна DDD можно сворачивать по отдельности.

Если вы хотите убирать DDD с рабочего стола во время долгих вычислений, вы можете установить `Edit => Preferences => General => Uniconify when ready'. Тогда можно будет свернуть DDD на время, пока он занят выполнением команды (например, прогоном программы); DDD автоматически развернется, когда станет готов принимать другие команды (например, после того, как отлаживаемая программа достигнет точки останова). См. раздел 6.4 Остановы программы, обсуждение этой темы.

Связанный с этой установкой ресурс:

Ресурс: uniconifyWhenReady (класс UniconifyWhenReady)
Если это `on' (по умолчанию), окна DDD автоматически разворачиваются, когда GDB готов принимать команды. При этом вы можете свернуть DDD во время какой-то долгой операции, и он сам автоматически развернется, когда программа остановится. Установка этого ресурса в значение `off' оставляет все окна DDD свернутыми.

3.6.4.7 Добавление кнопок

Вы можете добавлять в DDD новые кнопки. См. раздел 10.4 Определение кнопок, для получения подробностей.

3.6.4.8 Дальнейшая настройка

Вы можете изменить буквально любую метку, цвет, привязку клавиши и так далее, изменяя ресурсы из файла `Ddd', который поставляется с дистрибутивом исходного кода DDD. Это работает так:

  • Найдите нужный ресурс в файле `Ddd'.
  • Скопируйте строку этого ресурса в ваш файл `~/.ddd/init' и измените ее по своему вкусу.

См. раздел A. Ресурсы по умолчанию, подробности о файле ресурсов по умолчанию.

3.6.5 Установки отладчика

Вы можете изменить внутренние установки для большинства подчиненных отладчиков с помощью `Edit => Settings'. Используя редактор установок, можно определить, следует ли приводить к обычному виду имена в Си++, сколько элементов массива нужно печатать и так далее.

PICS/ddd-settings

Возможности редактора установок зависят от возможностей вашего подчиненного отладчика. Щелчок на `?' даст объяснение отдельных пунктов; более подробные сведения можно найти в документации на GDB.

Для отмены изменений используйте `Edit => Undo'. Щелчок на `Reset' восстанавливает последние сохраненные установки.

Некоторые установки отладчика нечувствительны, и их нельзя изменить, поскольку это подвергло бы опасности работоспособность DDD. Для получения подробностей смотрите описания ресурсов `gdbInitCommands' и `dbxInitCommands'.

Все установки отладчика (кроме путей исходных и объектных файлов) сохраняются вместе с параметрами DDD.


[Содержание]   [Назад]   [Пред]   [Вверх]   [След]   [Вперед]  

Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости