Смекни!
smekni.com

Диалоговая оболочка отладчика MPI-программ (стр. 5 из 5)

5.12 Окно просмотра стека и исходных текстов (Textcontrol)

Окно показа стека и текстов разделяется на две части: просмотр стека (Stackview) и просмотр текса (Sourceview). В окне Stackviewпредставлен стек вызовов в виде списка строк формата <номер> <имя файла> <стока кода> <наличие файла> (Рис 8), где <имя файла> - имя исходного файла, <строка кода> - номер строки в исходном тексте, помогающий локализовать ошибку, <наличие файла> - указание существования файла (файл может не существовать). Последний вызов расположен под первым номером, первый вызов стоит последним в списке.

Рис 8.ОкноText control.

Второе окно Sourceviewотображает исходные тексты программы, и представляет собой набор закладок (Tabpane), где каждому файлу соответствует одна закладка.

Управление:

При выборе строки в окне стека, в окне Sourceview отображается исходный текст соответствующий данному вызову.

Возможен выбор режимов просмотра, через меню Actions:

· Показать/спрятать стек

· Показать/спрятать исходный код

· Показать строку кода (прокрутить окно исходного текста к выделенной строке)

5.13 Окно просмотра трасс (Tracecontrol)

Окно Tracecontrolсостоит из двух частей (окон): окно трассы Traceviewи окно Textcontrol(Рис 9).

В окне Traceview представляются в текстовом виде события трассы, упорядоченные по времени. События, определенные отладчиком как ошибочные, имеют соответствующие пометки в поле признака ошибки, а также снабжаются текстовыми сообщениями об ошибках.

Каждому событию соответствует срока формата

<номер события> <вызов/возврат> <имя функции> <время события> <имя файла> <ссылка на исходные коды> <признак ошибки> <название ошибки> <текст ошибки>

Где <вызов/возврата>- признак вызова или возврата из функции

<ссылка на исходные коды> - ссылка на текст программы, где происходит обращение к функции или возврат из нее

<признак ошибки> - может отсутствовать, либо указывать на наличие ошибки или предупреждения

Каждому событию соответствует ссылка на исходные коды или неопределенная ссылка. При смене строки в окне Traceviewобновляется содержимое окна Textcontrol, в нем выводится стек и исходные тексты, соответствующие ссылке в текущем событии из окна Traceview.

Рис 9. Окно Tracecontrol.

Управление:

В окне Tracecontrol через меню Actionsвозможны следующие действия:

· Полный/сокращенный просмотр стека. Установка (снятие) данного режима позволяет показывать (прятать) окно Stackview в окне Textcontrol. При отключении стека показывается последнее событие в стеке вызовов, а точнее исходный текст, соответствующий этому событию.

· Показать/спрятать окно Stackcontrol. Позволяет показать (спрятать) окно Stackcontrol. При отключении показа окна Stackcontrol ускоряется навигация по списку событий, пользователь может включить показ исходных кодов только для интересующего его события.

· Показать/спрятать окно Traceview. Позволяет пользователю подробнее рассмотреть интересующие его исходные коды.

· Найти первую ошибку. Находит в списке событий первое событие с признаком ошибки и делает его текущим.

· Найти первую ошибку или предупреждение. Находит в списке событий первое событие с признаком ошибки или предупреждения и делает его текущим.

· Найти следующую ошибку. Находит следующее событие с признаком ошибки и делает его текущим.

· Найти следующую ошибку или предупреждение. Находит следующее событие с признаком ошибки или предупреждения и делает его текущим.

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


Заключение

В ходе работы были изучены модели параллельного программирования, методики и средства отладки параллельных программ, методики создания пользовательского интерфейса. Изучена графическая библиотека Qt[13], которая была выбрана как база для реализации из-за того, что она обеспечивает работу приложения в двух операционных средах – UNIX и Windows. Изучено программное средство QtDesigner. Проанализированы вопросы визуализации отладочной информации, способов точной локализации и представления ошибок.

Была разработана, спроектирована и реализована диалоговая оболочка MPI-отладчика. Язык реализации C++ (объем программы 12700 сток), платформа Linux, графическая библиотека Qt 3.2. Определен набор функций, необходимый для быстрой и точной локализации ошибок. Предложены новые способы визуализации трассировки, например Eventline(сравните с Timeline, используемой в большинстве существующих средств отладки). Реализован пользовательский интерфейс, который был опробирован при отработке MPI-отладчика на тестах и реальных приложениях.

В дальнейшем возможно улучшение пользовательского интерфейса, добавление новых меню и панелей инструментов. Планируется добавление в MPI-отладчик и его диалоговую оболочку средств анализа эффективности выполнения программы. Также планируется перенос MPI-отладчика на платформу Windows, что возможно осуществить, благодаря использованию кросс-платформенной библиотеки Qt.


Литература

1. MPI: A Message-Passing Interface Standard. http://www.mpi-forum.org/docs /docs.html

2. High Performance Fortran language specification // High Performance Fortran Forum. Scientific Programming. – 1993. – Vol. 2. – Р.1-170.

3. OpenMP Consortium. http://www.openmp.org

4. Документация к системе DVM. http://www.keldysh.ru/pages/dvm

5. NASA http://science.nas.nasa.gov/Software/AIMS/manual

6. Описание программных средств отладки Vampir и VampirTrace http://www.pallas.com/e/products/vampir

7. Гибсон Ф. "Экологический подход к психологии восприятия"

8. Донской М. Пользовательский интерфейс. PCMagazine – RussianEdition © СК Пресс.

9. Parallel Relative Debugging for Distributed Memory Applications. Gregory R. Watson and David Abramson. School of Computer Science and Software Engineering Monash University.

10. Qt library documentation http://www.trolltech.com

11. High Performance Cluster Computing: Architectures and Systems, Vol. 1. Edited by Rajkumar Buyya. School of Computer Science and Software Engineering Monash University.

12. Solaris 7 Software Developer Collection. Multithreaded Programming Guide. Tools for Enhancing MT Programs. http://docs.sun.com/db/doc/805-5080/6 j4q7emhk?q=Locklint&a=view

13. Isolating Failure-Inducing Thread Schedules. International Symposium on Software Testing and Analysis (ISSTA2002), Via di Ripetta, Rome Italy, July 22-24, 2002. http://www.research.ibm.com/dejavu/choi-zeller.pdf