Готовый перевод Inferno Programmer's Guide / Руководство программиста по ОС Inferno: Chapter 4 - Limbo Development Tools
Инструменты разработчика Limbo
Введение
Эта глава представит вам основные инструменты которые создают окружение разработчика в Inferno.
* Редакторы текста - Notepad и Brutus
* Компиляторы Limbo - независимые и зависимые от платформы
* Дебаггер - для отладки на уровне исходного кода
* Менеджер модулей - для просмотра объектного кода
* Менеджер задач - для управления запущенными процессами
За исключением компиляторов Limbo , все средства разработки являются оконными приложениями.
Замечание: В этой главе, метка inferno_root это директория куда была установлена ОС Inferno. Например, в случае Windows-окружения, это будет c:\users\lnferno, для среды Unix это будет /usr/inferno.
Соглашение по наименованию фалов Limbo
По соглашению, расширения даваемые файлам следующие:
// тут табличка. 1-й столбец - строка fileame заключенная в < и > и далее расширение. 2-й столбец описание.
filename.b - Файл с исходным кодом Limbo.
filename.dis - Файл двоичного образа выполняемый виртуальной машиной Dis; создается на этапе компиляции.
filename.m - Файл исходного кода модуля Limbo
filename.s - Ассемблерный код; опционально создаваемый во время компиляции.
filename.sbl - Файл отладочной информации; опционально создаваемый во время компиляции.
Замечания: имена файлов на Inferno не могут быть длиннее 27 символов. Разрешены только символы буков, цифр, тире (-), подчеркивание(_) и точка(.).
Не используйте следующих символов: #, &, \, /, ?, |, ;, <,>. Операционная система из которой запускается Inferno также может наложить ограничение на символы используемые в именах файорв и это должно иметься в виду, когда определяются имена файлов исплользуемые в Inferno.
Разработка Limbo-программ.
Процесс разработки приложений на Limbo очень похож на процесс разработки приложений в других средах программирования. Обычно процесс разработки происходит так:
* С помощью Notepad или Brutus пишется программа
* Компилируеся используя Limbo
* Происходит отладка используя отладчик (Debugger)
* Просматривается программа с помощью Dis Module Manager
* Отслеживается ее выполнение с помощью менеджера задач (Task Manager)
Написание программ на Notepad
Программа на Limbo - это модуль или набор модулей, которые выполняют какую-то задачу. Вы можете написать исходный код используя компилятор в любом текстовом ASCII вне Inferno, или можете редактор Notepad предоставляемый с Inferno.
Запуск Notepad
Из Window Manager выберете Inferno >> Development Tools >> Notepad. Приложение Notepad выведется на экран.
Рисунок 4-1 Приложение Notepad
// Тут рисунок со страницы 138
Сохранение файла в Notepad
Для того, чтобы сохранить новый файл (который ранее не был сохранен), выберите опцию File >> Save As. Вызовется всплывающее окно File.
Рисунок 4-2 Всплывающее окно File
//Тут рисунок со страницы 139 1
Введите имя файла и нажмите Enter.
По умолчанию файл сохраняется в папку(/usr/). Новый файл появляется под титульной панелью Notepad.
Для того, чтобы сохранить файл после редактирования, выберите File >> Save.
Создание нового файла в Notepad
Чтобы создать новый файл в Notepad выберите File >> New.
Используйте функцию поиска в Notepad
1. Когда файл открыт выберите Search >> Search For.
Высветится всплывающее окно Search For.
Рисунок 4-3 всплювающее окно Search.
//Тут рисунок со страницы 139 2
2. Напишите текст, который будете искать и нажмите Enter. Первый его экземпляр подсветится.
3. Чтобы повторить поиск того же текста, выберите Search >> Search.
Редактирование исходного файла в Notepad
1.В Notepad выберите File >> Open. Диалоговое окно Open выведется на экран.
Рисунок 4-4 Диалоговое окно
//Тут рисунок со страницы 140
Выход из Notepad
выберите File >> Exit.
Редактирование примера
Для этого вам покажем простую Limbo-программу приветсвия (“Hello, World!”). Она также может быть использована для работы с компилятором, которая будет после нее.
1. Запустите Notepad и введите следующий текст в новый файл.
implement Hello;
include "sys.m";
sys: sys; include "draw.m";
Hello: module{
init: fn(ctxt: ref Draw->context, argv: list of string);
};
init(ctxt: ref Draw->context, argv: list of string) {
sys = load Sys Sys->PATH;
sys->print("Hello, world\n"); }
Figure 4-5 Hello World Program
// Тут рисунок со страницы 142
Выберите File >> Save As.
3. В всплывающем окне File, введите hello.b .
Рисунок 4-6 Сохранение файла
// Тут рисунок со страницы 142
4. Нажмите Enter. Файл /usr/hello.b сохранен.
Вы можете использовать этот файл для вывода на компилятор в следующей главе "компилирование программ".
Запись файла используя редактор Brutus
В Inferno есть другой редактор называемый Brutus, который может быть использован для написания исходного кода на Limbo. Добавочной возможностью Brutus является то, что в него входит поддержка plumbing. Поддержка plumbing(вертикального просмотра кода или в глубину?) позволяет автоматически открывать соответсвующие Limbo-модули, нажав в окне редактора Brutus правой кнопкой мыши по имени модуля.
Замечание: Brutus также поддерживает создание SGML(стандартный обобщённый язык разметки) файлов. Особенности языка SGML не могут быть использованы с Limbo компилятором. Смотрите Inferno User’s Guide для более подробной информации об особенностях SGML поддерживаемых в Brutus.
Введение в Brutus
1. Выберите Inferno >> Applications >> Text Editor. Вы вызовите редактор Brutus.
По умолчанию файл называется "unnamed" - это отражается на главной панели редактора Brutus.
Figure 4-7 Brutus Editor
// Тут рисунок со страницы 145
Как сохранить файл в Brutus
1. В редакторе Brutus, выберите File >> Write. Вызовется диалоговое окно записи файла.
Рисунок 4-8 диалоговое окно записи файла
// Тут рисунок со страницы 146
2. Для того, чтобы сохранить файл в директорию /usr/ , введите имя файла и нажмите OK.
Создание нового файла в Brutus
В Brutus выберите File >> New.
Открытие существующего файла в Brutus
1.В Brutus выберите File >> Open.
На экран в диалоговом окне выводится файл, который вы выберете.
Рисунок 4-9 Файл для этого окна
// Тут рисунок со страницы 147
2. Выберите Browse. Выведется список Open File для этого диалогового окна.
Рисунок 4-10 Список Open File для этого окна
// Тут рисунок со страницы 148
3. Выберите файл для открытия - hello.b, и нажмите Open. Файл откроется в Brutus.
Использования просмотра кода вглубь (Plumbing) в Brutus
1. Открыт файл hello.b в Brutus
Рисунок 4-11 Hello.b
// Тут рисунок со страницы 149
2. Наведите курсор на имя файла, например sys.m, нажмите правую кнопку мыши. Файл откроется.
Рисунок 4-12 Sys.m Открывается автоматически
// Тут рисунок со страницы 150
Переключение между различным открытыми экземплярами Brutus
Вы можете запустить более одного экземпляра Brutus. Добавочные экземпляры Brutus перечислены в меню File. Выберете File >> “имя_файла” чтобы вызвать тот экземпляр Brutus, в котором имя файла - это имя файла открытое в другом экземпляре Brutus.
Выход из Brutus
1. Нажмите кнопку close на окне.
Если изменения не сохранены, вызовется диалоговое окно Warning с предупреждением.
Рисунок 4-13 Диалоговое окно Warning
// Тут рисунок со страницы 151
2. Выберите Write(записать) и Proceed (продолжить), чтобы выйти из Brutus и сохранить изменения, Proceed для выхода без сохранения изменений, или Cancel, чтобы вернуться в файл не закрывая Brutus.
Компилирование программ
После того как вы написали файл с исходным кодом на Limbo используйте компилятор Limbo, чтобы сделать исполняемую программу. Компилятор переводит исходный код на Limbo в машинно-независимые двоичные файлы (по умолчанию им дается разрешение .dis) для выполнения на виртуальной машине Dis.
Существует два компилятора для генерации Dis файлов(.dis):
*Машинно-зависимый компилятор который запускается из родной ОС.
** Для ОС Windows 95/NT исполняемый файл компилятор "limbo.exe", расположенный в папке "/Nt/386/bin".
*** Для ОС UNIX исполняемый файл компилятор "limbo" расположенный в паке "/Solan' s/sparc/bin" или "/Solan's/386/bin", в зависимости от платформы.
* Машинно-независимый компилятор написанный на Limbo, который запускается из под Inferno. Этот компилятор "Limbo.dis" расположен в папке "/dis".
Файлы выводимые обоими компиляторами идеинтичны.
Следующие процедуры компилятора используют файл сделанный в редакторе Notepad, подредактированный пример hello.b для компилирования.
Использования машинно-зависимого компилятора
Используйте процедуру, чтобы скомпилировать ваши limbo-программы на главной ОС. Это пример использует Windows 95.
1. Откройте окно MS-DOS выбрав Start >> Programs >> MS-DOS Prompt
На экран выведется окно MS-DOS Prompt
Figure 4-14 MS-DOS Prompt
//Тут рисунок со страницы 153
Вы можете изменить переменную пути к DOS, чтобы она содержала директорию c:\users\lnferno\Nt\386\bin директорию или скопировать файл limbo.exe в директорию, такую как c:\windows. Используя оба подхода, вы можете запустить компилятор Limbo в окне DOS из любой директории.
2. Перейдите в директорию где хранится hello.b,для этого примера это
\users\lnferno\usr\ckania.
Введите :
cd \users\lnferno\usr\ckania Нажмите Enter. Директория изменится
Figure 4-1 5 Directory Where hello.b File Resides
// Тут рисунок со страницы 154
3. Откомпилируйте программу hello.b введя: "limbo hello.b" Нажмите Enter.
70 Figure 4-16 Compiling Hello.b
// Тут рисунок со страницы 155
Просмотрите содержимое директории, чтобы увидеть, что файл hello.dis сделан компилятором.
Введите dir
нажмите Enter.
Figure 4-1 7 Hello.dis Created by the Compiler
// Тут рисунок со страницы 156
Имейте в виду, что компилятор также запускается через командную строку и результирующий файл hello.dis может быть исполнен только из под Inferno.
Использование машинно-независимого компилятора.
1. Откройте оболочку shell в Window Manager.
Рисунок 4-18 Inferno Window Manager Shell
// Тут рисунок со страницы 157
Перейдите в директорию, где расположен файл hello.b, который был сохранен из примера использования редактора Notepad. Например, введите:
cd /usr/inferno
Нажмите Enter.
3. Откомпилируйте программу hello.b, введя: limbo hello.b Нажмите Enter.
Рисунок 4-19 компилирование Hello.b
// Тут рисунок со страницы 158
4. Проверьте, что вывел ли компилятор файл (hello.dis) и введите:
ls
Нажмите Enter.
Рисунок 4-20 Hello.dis вывод компилятора
// Тут рисунок со страницы 159
5. Файл hello.dis может быть исполнен в EMU. Введите:
hello
Нажмите Enter.
Рисунок 4-21 Hello.dis запущенный
// Тут рисунок со страницы 160
Опции компилятора
Пример команды компилятора с одним параметром следующий:
limbo -g hello.b
Параметр -g также создает файл с таблицей символов нужный отладчику.
В результате получаются файлы hello.dis и hello.sbl.
Об полного списка всех параметров компилятора смотрите limbo - компилятор limbo в Inferno Reference Manual.
Отладка программ
Чтобы отладить модуль, который разрабатывается, вызовете компилятор Limbo с параметром командной строки -g. Этот параметр заставляет компилятор выводить дополнительную информации, которая нужна отладчику в файл с таблицей символов.
Замечание: Для того чтобы использовать отладчик Limbo, EMU должен быть запущен в режиме интерпретатора. За подробностями о режимах работы emu обращайтесь к Inferno Reference Manual.
Следующие файлы требуются отладчику для выполнения действий над модулем.
.b - Исходный код Limbo
.dis - Скомпилированный код Dis
.sbl - Файл таблицы символов
Запуск отладчика
Отладчик это графическое приложение запускаемое из менеджера окон.
Для запуска отладчика выберите Inferno>>Development Tools>>Limbo Debugger из менеджера окон. Рисунок 4-22 показывает открывающиеся окна когда вы запускаете отладчик.
Рисунок 4-22 Окно отладчика Limbo
// Тут рисунок со страницы 162
Окно стека в отладчике
Окно стека поделено на две панели. левая панель испоьзуется для выбора какую информацию отображать, и правая панель показывает содержиание стека. Первоначально, различные части пространства имен представлены кнопками в "закрытом" состоянии.
По щелчку, кнопки раскрывают дальнейшие подробности (включая локальные имена переменных) и их текущие значения показываются в соответствующей строке на правой панели.
Рисунок 4-23 Примерный вид окна стека
// Тут рисунок со страницы 163
Управляющее окно отладчика
Когда вы запускаете отладчик Limbo, на заднем плане открывается управляющее окно отладчика. Это окно используется для управлением процессом отладки.
Меню File используется для выбора модуля (нити) для отладки. Этот модуль может быть одним из следующих:
* Уже запущенная нить выбранная через File>>Threads. Нить может быть также выбрана через Inferno>>Shell>>Task Manager.
* Вновь созданная нить программы запущенной посредством File>>Open.
Когда вы открываете нить для отладки, также будет показан исходный файл Limbo, как на Рисунке 4-2.
Рисунок 4-2 Исходный файл Limbo в окне отладчика
// Тут рисунок со страницы 165
Кнопки отладчика
В Таблице 4-1 описаны кнопки расположенные слева в окне управления отладчика.
Таблица 4-1 Кнопки отладчика
// Вместо знака # вставить иконки
# Убить текущий процесс (Red X)
# Остановить отладку текущего процесса (Green X)
# (Same button appears two ways) Запустить до точки останова (Green-Filled Circle) - Ready
# Run to breakpoint Stop (Red Octagon) - Running
# Step one operation
# Step one statement
#l Step over calls
# Step out function
# Set/clear break point (Red X, Green Arrow)
Использование отладчика
После выбора нити для отладки или открытия файла с исходным текстом программы, щелкните на кнопке "Run to Breakpoint Start" для начала выполнения нити. По умолчанию, программа останавливается на первом выполняемом операторе. Вы можете отлаживать только одно приложение за раз. Приложение может запускать дополнительные нити и загружать модули при необходимости, но отладчик может загрузить только одно приложение. Вы можете изменить действие отладчика через установки опций. Смотри раздел Установка Опций Отладчика.
Как вариант, вы можете установить точку останова в коде и запустить программу до тех пор, пока во время выволнения программы точка останова не будет достигнута. В каждом случае место в коде, где выполнение было приостановлено будет подсвечено на панеле с исходным кодом.
Пошаговое выполнение внутри функций
Когда вы проходите по программе по одному приложению за раз, есть несколько интересных этапов, когда вызов функции может быть замечен:
* Во-первых операторы внутри функции подсвечиваются. Так показывается расположение частей стека для функции.
* Во-вторых отладчик останавливается и подсвечивает каждый аргумент функции, как только он обработан.
* В-третьих отладчик подсвечивает выражения внутри функции снова, чтобы показать текущих вызов функции с посчитанными аргументами.
Точки останова
Точки останова - удобный метод для остановки и запуска программы которую вы отлаживаете.
Установка точки останова
1. Выберите часть кода, на которой следует вызвать остановку.
2. Нажмите на кнопку Set/Clear Breakpoint.
Выбранный код высветится красным. Также, число точек останова отразится в окне Break.
Очистка точки останова:
1. Выберете ту часть кода, где была установлена точка останова.
2. Нажмите на кнопку Set/Clear Breakpoint.
Код вернет свой номальный цвет и связанная с ним число точки останова удалится из окна Break.
Использование плюмбинга в отладчике
Отладчик поддерживает плюмбинг, обеспечивающий автоматическую загрузку файла с исходным текстом отлаживаемого файла. Когда ваша отлаживаемая программа заружена в отладчике, и вы кликнули правой кнопкпой мыши в панеле исходного кода, файл с текстом программы открывается для редактрования и просмотра в редакторе Brutus. Ошибки отображаются в окне плюмбинга.
Рисунок 4-25 Плюмбинг и отладчик
// Тут рисунок со страницы 169
Так же и в Brutus, возможности плюмбинга можно использовать для открытия связанных файлов-модулей. Смотрите раздел "Использование Плюмбинга в Brutus" ранее в этой главе.
Завершение программы
В конце каждой программы имеется неявня точка останова , так же как и первый выполняемый оператор.
Для дальнейшего продолжения, программа должна быть прервана щелчком по кнопке "Stop Debugging Process".
Позже вы можете перезапустить программу щелкнув по кнопке "Run to Breakpoint Start".
По умолчанию, все другие нити созданные отлаживаемой программой будут прерваны на выходе.
Установка опций отладчика
Вы можете изменить режим работы отладчика через набор опций.
Для отображения опций отладчика выберите File>>Options. Выберите General для просмотра страницы опций.
Рисунок 4-26 Закладка опций General
// Тут рисунок со страницы 171
Опции отладчика General следующие:
* Executable module - Исходный файл модуля загруженный в отладчике, или если модуль не загружен вы можете набрать путь и имя файла модуля в этом поле.
* WM program - Выберите эту опцию когда вы отлаживаете модули испоьзующие оконный менеджер. Выбор этой опции отправляет дополнительные начальные аргументы программе, такие как размещение создаваемого окна 20 на 20 пикселей в левой части Окна Управления отладчика. Последующие окна, если они открываются, так же будут приведены к размеру 20 х 20 пикселей и размещены каскадом.
* Program Arguments - Наберите необязательные аргументы командной строки передаваемые программе, когда она выполняется в отладчике.
* Working Directory - Это поле показывает директорию где могут быть найдены исполняемые файлы (.dis) и таблицы символов (.sbl). Если значение не задано, вы можете набрать путь в этом поле.
Выберите Thread для отображения опций которые управляют тем, как отладчик обрабатывает операции и нитями.
Рисунок 4-27 Закладка опций Thread
// Тут рисунок со страницы 172
* Block/Run New Threads - Выбор Block new threads запретит создание загруженной в отладчике программой новых нитей. Новые нити создаются, но переходят в заблокированное состояние. Эта опция полезна когда отлаживаются вызовы других модулей которые могут быть не завершены или недоступны в данный момент. Выбор пункта Run new threads позволяет программе загруженной в отладчике создавать новые нити.
* Kill/Detach Threads on Exit - Выбор Kill threads on exit будет завершать любые нити созданные во время отладки, когда отладчик закрывается. Выбор пункта Detach threads on exit не прерывает выполнение созданный во время отладки, когда отладчик закрывается.
Изменения сделанные в этом диалоговом окне вступают в силу поле шелчка на кнопке Ok. После того как вы звершили установку опций в окне Wmdeb, щелкните на Ok.
Использование Поиска
Пока исходный файл загружен в отладчике, вы можете пользоваться функцией поиска строки символов в исходном коде.
1. Выберите Search >>Search for.
Будет выведен диалоговое окно поиска.
// Тут рисунок со страницы 173
2. Наберите символы для поиска.
3. Нажмите Enter.
Первое найденные символы будут выделены цветом. Меню Search отображает текущую строку поиска.
4. Выберите Search>>(ваша строка) для поиска следующего экземпляра строки.
5. Для поиска в выделенном тексте, выделите некоторый текст и затем выберите Search >> Look.
Просмотр программ при помощи Dis Module Manager
С помощью Dis Module Manage вы можете просматривать объектный код (*.dis файлы) для виртуальной машины Dis и видеть подробности объектного коа, такие как информацию о заголовке, сегмент кода, сегмент данных, описатели типа, описатели ссылок.
Запуск Dis Module Manager
Из оконного менеджера, выберите Inferno >> Inferno Development Tools >> Module Manager. Будет запущен Dis Module Manager.
Рисунок 4-28 Dis Module Manager
// Тут рисунок со страницы 174
Открытие файла с объектным кодом
1. В окне Dis Module Manager выберите File >> Open Module. Будет отображено диалоговое окно Open Dis File.
Рисунок 4-29 Диалоговое окно Open Dis File
// Тут рисунок со страницы 175
выберите файл для просмотра и нажмите Open. Могут быть просмотрены только объектные файлы (.dis файлы).
Файл открывается и отображается сегмент кода объектного файла.
Рисунок 4-30 Dis Module Manager - Сегмент кода
// Тут рисунок со страницы 176
Просмотр свойств файла
Вы можете просматривать различные аспекты объектного кода файла в Dis Module Manager.
1. Для просмотра секции заголовка объектного файла, выберите View >> Header.
Будет отображена секция заголовка
Рисунок 4-31 Dis Module Manager - Заголовок
// Тут рисунок со страницы 177
2. Для просмотра сегмента данных объектного файла выберите View >> Data Segment.
Будет отображен сегмент данных
Рисунок 4-32 Dis Module Manager - Сегмент данных
// Тут рисунок со страницы 178
3. Для просмотра опистелей типа выберите View >> Type Descriptors.
Будут отображены описатели типа
Рисунок 4-33 Dis Module Manager - Описатели типа
// Тут рисунок со страницы 179
4. Для просмотра описателей ссылок выберите View >> Link Descriptors.
Будут отображены описатели ссылок
Рисунок 4-34 Dis Module Manager - Описатели ссылок
// Тут рисунок со страницы 180
5. Для просмотра сегмента кода выберите View >> Code Segment.
Будет отображен сегмент кода
Рисунок 4-35 Dis Module Manager - Сегмент кода
// Тут рисунок со страницы 181
Выход из Dis Module Manager
Кликните на кнопку закрытия окна Dis Module Manager. Dis Module Manager закроется.
Примечание: Запись .dis модулей и запись .s модулей из меню File в настоящий момент не поддерживается. Опции меню Properties в настоящий момент не поддерживаются.
Мониторинг запущенных программ при помощи Task Manager
В Inferno предусмотрен Task Manager для просмотра нитей запущенных приложений, отладки запущенных нитей и прерывания выполняющихся нитей.
Запуск Task Manager
Для запуска Task Manager выберите Inferno >> Development Tools >> Task Manager. Будет запущен Task Manager.
// Тут рисунок со страницы 182
Пример запуска отладчика из Task Manager
Для использования отладчика с запущенным приложением, вам понадобиться скомпилировать приложение с опцией создающей таблицу символов, нужную отладчику. Смотри раздел Компиляция программ. Если таблица символов в той же директории что и приложение, отладчик найдет ее, иначе запросит местоположение файла символьной таблицы.
1. В окне EMU скопируйте файл /appl /wm/coffee.b в свою пользовательскую директорию. Например:
cp /appl/wm/coffee.b /usr/inferno Нажмите Enter.
Рисунок 4-37 Копирование файла /appl/wm/coffee.b
// Тут рисунок со страницы 183
2. Для повторной компиляции с опцией -g (создающей символьную таблицу - файл .sbl), наберите:
limbo -g coffee.b
Нажмите Enter.
Рисунок 4-38 Компиляция с опцией -g
// Тут рисунок со страницы 184
3. Убедитесь, что файл coffee.sbl существует набрав:
ls *.sbl
Нажмите Enter.
Рисунок 4-39 Файл символьной таблицы доступен
// Тут рисунок со страницы 185
Запустите Task Manager выбрав nferno >> Development Tools >> Task Manager.
Появится окно Task Manager.
Рисунок 4-40 Task Manager - Приложение Coffee не запущено
// Тут рисунок со страницы 186
В оконном менеджере запустите приложение, которое вы хотите отладить. Запустите вновь скомпилированную версию приложения Coffee набрав в приглашении командного интерпретатора:
coffee
Появится приложение Coffee.
Рисунок 4-41 Приложение Coffee
// Тут рисунок со страницы 187
6. Щелкните на заголовке окна Task Manager, чобы оно получило фокус.
Окно Task Manager пополнилось и отображает нити ассоциированные с приложением Coffee. В любой момент вы можете щелкнуть на кнопке Refresh для обновления окна Task Manager.
Рисунок 4-42 Нити Coffee в окне Task Manager
// Тут рисунок со страницы 188
7. В окне Task Manager щелкните по первой ните помеченной coffee для ее выбора.
Нить будет выделена цветом.
Рисунок 4-43 Нить Coffee выделенная цветом
// Тут рисунок со страницы 189
Щелкните Debug.
Запустится Отладчик и загрузит файл coffee.b
Рисунок 4-42 Нити Coffee в окне Task Manager
// Тут рисунок со страницы 188
Обратитесь к предыдущему разделу Отладка Программ для дополнительной информации.
Завершение нити
Замечание: С осторожностью пользуйтесь командой Kill в Task Manager. Завершение нити процесса такой как Window Manager может явиться причиной внезапного останова Inferno.
В Task Manager выберите нить для завершения, затем нажмите Kill.
Просмотр связанных управляющих файлов
Для просмотра управляющих файлов связанных с выполняющейся нитью, выберите сначала нить в Task Manager, затем выберите Files. Связанные управляющие файлы будут показаны в Блокноте.
Рисунок 4-45 Управляющие файлы
// Тут рисунок со страницы 191
Выход из Task Manager
Для выхода из Task Manager щелкните на кнопку закрытия.
Инструменты конкурентного программирования Limbo
Язык Limbo поддерживает параллелизм распределенных приложений на уровне модулей. Limbo использует принцип передачи сообщений для поддержки кооперативной или конкурентной синхронизации. Limbo может пользоваться SPIN для проверки или помощи в проектировании распределенного приложения. поддержка конкурентной синхронизации в Java не поддерживается проверкой SPIN.
Инструментарий SPIN описан в книге G. Holzmann изданной в Prentice Hall, озаглавленной "Design and Validation of Computer Protocols".
Подробную информацию о SPIN и бесплатные средства разработки могут быть получены по адресу: http://netlib.bell-labs.com/netlib/spin/whatispin.html
Переведено на Нотабеноиде
http://notabenoid.org/book/2198/8904
Переводчики: rapidfx, wuffur
Настройки
Готово:
