DEB_GU~2 (1158346), страница 4
Текст из файла (страница 4)
Все параметры базового набора снабжены комментариями. Полные списки параметров динамического контроля, пользовательской трассировки, параметров вывода и параметров управления системной трассировкой (как наиболее часто используемые при отладке программ) приведены ниже.
11.1.Параметры динамического контроля
Перечисленные ниже параметры расположены в файлах с именем usrdebug.
-
EnableDynControl =1 – выполняется динамический контроль.
-
EnableTrace =0 - обработка трассировки запрещена.
-
DbgInfoPrint =1 - признак включенных информационных сообщений системы динамического контроля и трассировки вычислений.
-
DebugOptions.ErrorToScreen — если значение не равно 0, то вся диагностика динамического контроля выводится на экран.
-
DebugOptions.ErrorFile — имя файла с диагностикой об ошибках. В данный файл пишутся сообщения об ошибках, найденных при динамическом контроле, если значение параметра DebugOptions.ErrorToScreen равно 0. Если попытки открытия файла окажутся неуспешными, то диагностика будет выводиться на экран.
-
DebugOptions.AppendErrorFile — определяет режим записи в файл диагностики при его использовании. Если значение равно 0, то при каждом запуске задачи содержимое этого файла обновляется.
-
DebugOptions.MaxErrors — определяет максимальное число ошибок, после которого динамический контроль будет отключен.
-
DebugOptions.PrintStatistic — если значение параметра не равно 0, то по окончании работы программы печатается статистика работы с таблицей переменных. Статистика выводится в файл с именем, заданным параметром DebugOptions.ErrorFile или на экран в зависимости от значения параметра DebugOptions.ErrorToScreen.
-
DebugOptions.CheckVarInitialization — если значение равно 0, то отменяется проверка инициализации скалярных переменных.
-
DebugOptions.CheckVarReadOnly — если значение равно 0, то отменяется проверка использования переменным с доступом только на чтение.
-
DebugOptions.CheckReductionAccess — если значение равно 0, то отменяется проверка использования редукционных переменных.
-
DebugOptions.CheckDisArrInitialization — если значение равно 0, то отменяется проверка инициализации элементов распределенных массивов.
-
DebugOptions.CheckDisArrLimits — если значение равно 0, то отменяется проверка обращений к элементам распределенного массива за пределами его границ.
-
DebugOptions.CheckDisArrEdgeExchange — если значение равно 0, то отменяется проверка обмена теневых граней распределенных массивов.
-
DebugOptions.CheckDisArrSequentialAccess — если значение равно 0, то отменяется проверка использования элементов распределенных массивов в последовательной части программы.
-
DebugOptions.CheckDisArrLocalElm — если значение равно 0, то отменяется проверка на принадлежность элемента распределенного массива его локальной части.
-
DebugOptions.CheckDataDependence — если значение равно 0, то отменяется проверка на зависимость параллельных циклов по данным.
-
DebugOptions.CheckRemoteBufferAccess — если значение равно 0, то отменяется проверка использования буферов удаленного доступа.
-
HashMethod — определяет алгоритм вычисления хеш-значения. 0 — используется StandartHashCalc, 1 — используется OffsetHashCalc.
-
HashOffsetValue — величина смещения для алгоритма OffsetHashCalc. Допускаются значения от 0 до 16.
-
DebugOptions.HashIndexSize — размер индекса хеш-таблицы для таблицы переменных
-
DebugOptions.HashTableSize — размер массивов хеш-таблиц
-
DebugOptions.VarTableSize — размер таблиц переменных
11.2.Параметры накопления и сравнения трассировки
Перечисленные ниже параметры расположены в файлах с именем usrdebug.
-
EnableDynControl =0 - динамический контроль запрещен.
-
EnableTrace =1 – выполняется обработка трассировки.
-
DbgInfoPrint =1 - признак включенных информационных сообщений системы динамического контроля и трассировки вычислений.
-
TraceOptions.TraceMode — задание режима трассировки:
0 — генерация файла описания циклов. Пишет только процессор с номером TraceOptions.WrtHeaderProc
1 — сбор трассировки и запись в файл <номер процессора>.<TraceOptions.Ext>.
2 — объединение двух предыдущих режимов.
3 — сравнение трассировки с эталонной, заданной в файле TraceOptions.TraceFile.
-
TraceOptions.TraceLevel — уровень накопления трассировки. Существенен только в режимах сбора трассировки и генерации файла описания циклов:
0 — трассировка не собирается.
1 — сбор информации только о циклах и итерациях.
2 — то же, что и предыдущее плюс сбор информации о модификациях переменных.
3 — сбор полной информации.
-
ManualReductCalc —режим вычисления редукции. Обычный, если параметр равен 0, и эмуляция вычисления каждого витка цикла на своем процессоре в противном случае.
-
TraceOptions.WriteEmptyIter — если равен 0, то из трассировки исключаются записи, соответствующие началу итерации, если внутри этой итерации нет обращений к переменным или вложенных циклов.
-
TraceOptions.TracePath — путь для файлов трассировки.
-
TraceOptions.TraceFile — имя файла с эталонной трассировкой. Файл берется из директории, указанной в TraceOptions.TracePath. Используется только в режиме сравнения трассировок.
-
TraceOptions.Ext — расширения для файлов с накапливаемой трассировкой. Имя файла формируется по правилу:
<номер процессора>.<значение TraceOptions.Ext>. Файл с трассировкой создается в каталоге, указанном в TraceOptions.TracePath. Используется только в режиме накопления трассировки. -
TraceOptions.FileLoopInfo — имя файла описания циклов программы. Берется из каталога, заданного в параметре TraceOptions.TracePath.
-
TraceOptions.ErrorToScreen — если значение не равно 0, то вся диагностика выводится на экран.
-
TraceOptions.ErrorFile — имя файла с диагностикой об ошибках. В данный файл помещаются сообщения об ошибках, если значение параметра TraceOptions.ErrorToScreen равно 0. Если попытки открытия файла окажутся неуспешными, то диагностика будет выводиться на экран.
-
TraceOptions.AppendErrorFile — определяет режим записи в файл диагностики при его использовании. Если значение равно 0, то при каждом запуске задачи содержимое этого файла обновляется.
-
TraceOptions.MaxErrors — максимальное число ошибок, после которого будет отключено накопление или сравнение трассировки.
-
TraceOptions.PrintStatistic — вывод статистики трассировки по окончании работы программы. Статистика выводится в файл TraceOptions.ErrorFile или на экран в зависимости от значения параметра TraceOptions.ErrorToScreen.
-
TraceOptions.Exp — точность сравнения вещественных чисел в режиме сравнения трассировок.
-
TraceOptions.WrtHeaderProc — номер процессора, который будет создавать файл описания циклов. Так как общая структура программы идентична для всех процессоров, то файл описания циклов будет одинаков для любого процесса. Отличаться они будут только значениями объема трассировки, т.к. эти значения вычисляются только для текущего процесса. Общий объем трассировки для всех процессов можно получить, запустив программу на одном процессоре.
-
TraceOptions.SpaceIndent — размер отступа, используемый в файлах трассировки.
-
TraceOptions.TableTraceSize — размер массивов для трассировки
-
TraceOptions.HashIterIndex,
TraceOptions.HashIterSize — параметры хеш-таблиц, используемых для поиска итераций. -
TraceOptions.ReductHashIndexSize,
TraceOptions.ReductHashTableSize,
TraceOptions.ReductVarTableSize — параметры таблицы переменных, используемой для хранения редукционных переменных -
TraceOptions.SaveThroughExec — если не равен 0, то трассировка пишется в файл в ходе выполнения программы (в память накопление не происходит). В противном случае трассировка записывается по окончании выполнения программы.
11.3.Параметры вывода информационных сообщений системы поддержки
Перечисленные ниже параметры расположены в файлах с именем syspar.
-
SysInfoPrint - общий признак включенного вывода информационных сообщений системы поддержки.
-
SysInfoStdOut - признак вывода информационных сообщений в поток stdout.
-
SysInfoStdErr - признак вывода информационных сообщений в поток stderr.
-
SysInfoFile - признак вывода информационных сообщений в файл.
-
SysInfoSepFile - признак накопления информационных сообщений в отдельном для каждого процессора файле.
-
SysInfoFileName - имя файла для информационных сообщений.
-
FatInfoNoOpen - признак завершения работы при неудачном открытии файла для информационных сообщений.
-
VersStartPrint – печать номера версии системы поддержки перед началом работы программы.
-
VersFullStartPrint – печать подробного номера версии перед началом работы программы.
-
VersFinishPrint - печать номера версии после окончания работы программы.
-
VersFullFinishPrint – печать подробного номера версии после окончания работы программы.
-
SysParPrint – печать параметров инициализации.
-
ProcListPrint – печать матрицы процессоров.
-
WeightListPrint – печать координатных весов процессоров.
-
ParamRunPrint – печать информации о начальных параметрах.
-
EndProgMessagePrint – печать остальных сообщений.
-
DVMInputPar – входные параметры функций DVM-системы.
-
MultiProcErrReg - режимный байт вывода сообщений об ошибках на многопроцессорной системе.
-
InputParPrint – печать в начале ввода параметров из каждого файла параметров.
-
EndReadParPrint - печать в конце ввода параметров из каждого файла параметров.
11.4.Параметры управления системной трассировкой
Перечисленные ниже параметры расположены в файлах с именем systrace.
-
Is_DVM_TRACE - общий пpизнак включенной тpассиpовки.
-
FullTrace -признак подробного режима трассировки.
-
ScreenTrace - признак выдачи трассировки на экран.
-
FileTrace - признак накопления трассировки в файлах.
-
TracePath - путь доступа к файлам тpассиpовки.
-
TraceFileSuffix - pасшиpение файлов пpи тpассиpовке в файлы.
-
TraceBufferSuffix - pасшиpение файлов пpи выгpузке буфеpов тpассиpовки.
-
DelTrace - пpизнак уничтожения стаpых файлов с тpассиpовкой.
-
FatNoOpen - признак завершения работы при неудачном открытии файла трассировки.
-
PrefFileTrace - признак трассировки в файлы с префиксом в виде номера процессора.
-
BufferTrace - признак трассировки в буфер.
-
TraceBufLength - длина буфеpа тpассиpовки в байтах.
-
FullBufferStop - признак останова трассировки при исчерпании буфера.
-
TraceFlush - признак выталкивания информации из системных буферов в файл трассировки после каждого события.
-
BufferTraceUnLoad - признак выгрузки буфера трассировки при завершении работы.
-
LowDumpLevel - пpизнак выгpузки тpассиpовки с помощью функций в/в нижнего уpовня.
-
TraceClosePrint - пpизнак выдачи сообщений о завеpшении выгpузки тpассиpовки.
-
KeyWordName - пpизнак печати "NAME=" пеpед именем каждого события.
-
PreUnderLine - признак подчеркивания заголовка каждого события.
-
PostUnderLine - признак подчеркивания конца печати каждого события.
-
PreUnderLining - стpока подчеpкивания заголовка каждого события.
-
PostUnderLining - стpока завеpшения печати каждого события.
-
BufferTraceShift - величина сдвига по уровню вложенности обращений к функциям при трассировке в буфер.
-
FileTraceShift=5 - величина сдвига по уровню вложенности обращений к функциям при трассировке в файлы.
-
TimePrecision - число знаков после запятой пpи печати вpемени в тpассиpовке.
-
MaxTraceStrLen - макс. длина тpассиpовочной записи в байтах.
-
PrintBufferByteCount - число байтов буфеpа, pаспечатываемых пеpед Send и после Receive.
-
mappl_Trace - признак выдачи доп. информации при трассировке функции mappl_
-
dopl_Trace - пpизнак выдачи доп. инфоpмации пpи тpассиpовке функции dopl_.
-
distr_Trace - признак выдачи доп. информации при трассировке функции distr_.
-
align_Trace - пpизнак выдачи доп. инфоpмации пpи тpассиpовке функции align_.
-
OutIndexTrace - признак печати вых. индексов в функции GetIndexArray.
-
RedVarTrace - признак печати ред. переменных в функциях saverv_ , strtrd_ и waitrd_.
-
diter_Trace - признак вывода подробной информации при трассировке интерфейсной функции diter_.
-
drmbuf_Trace - признак вывода подробной информации при трассировке интерфейсной функции drmbuf_.
-
dvm_StartAddr - нач. адpес контpолиpумой в тpассиpовке памяти.
-
dvm_FinalAddr - кон. адpес контpолиpуемой в тpассиpовке памяти.
-
EveryEventCheckMem - пpизнак контpоля заданной памяти в каждом тpассиpуемом событии.
-
EveryTraceCheckMem - пpизнак контpоля заданной памяти пpи каждом входе в тpассиpовку.
-
EveryEventCheckCodeMem - пpизнак контpоля памяти команд в каждом тpассиpуемом событии.
-
EveryTraceCheckCodeMem - пpизнак контpоля памяти команд пpи каждом входе в тpассиpовку.
-
EveryEventCheckBound - пpизнак контpоля гpаниц занятых блоков памяти в каждом тpассиpуемом событии.
-
EveryTraceCheckBound - пpизнак контpоля гpаниц занятых блоков памяти пpи каждом входе в тpассу.
12.Диагностические сообщения динамического отладчика
Общая структура сообщения об ошибке динамического отладчика:
(<process number>)<context> File: <file>, Line: <line> (<count> times)<error message>
где:
| <process number> | – номер процессора, на котором произошла ошибка. | |
| <context> | – контекст, в котором произошла ошибка. | |
| Sequential branch | – ошибка произошла в последовательной части программы | |
| Loop( No(N1), Iter(I1,I2,…)), …, Loop( No(Nm), Iter(I1,I2,…)) | – ошибка произошла в ходе выполнения цикла m-степени вложенности. | |
| <file> | – имя файла, где произошла ошибка. | |
| <line> | – номер строки. | |
| <count> | – число повторений данной ошибки в данном контексте. Выводится при суммарной выдаче всех найденных ошибок. | |
| <error message> | – сообщение о произошедшей ошибке. | |
12.1.Динамический контроль
| Writing to read-only variable<var> | Обнаружена запись в переменную, которая доступна только для чтения. |
| Using of non-initialized private variable<var> | Обнаружено обращение к неинициализированной переменной. |
| Using non-initialized element <elem> | Обнаружено обращение к неинициализированному элементу массива. |
| Using variable <var>before asirchronous reduction competed | Обращение к редукционной переменной до завершения операции редукции. |
| Access to non-local element <elem> | Обращение к нелокальному элементу массива. |
| Writing to shadow element <elem>of array | Запись в теневой элемент массива. |
| Shadow element <elem>was not updated | Обращение к теневым элементам до завершения операции пересылки границ. |
| Data dependence in loop <elem> | Обнаружена зависимость параллельного цикла по данным. |
| WAIT for shadow renew without START | Выдана операция ожидания завершения обмена границами без его инициализации. |
| Double WAIT for shadow renew | Повторный вызов операции ожидания завершения обмена границами. |
| Write to exported elements before shadow renewal. | Запись в импортируемый элемент массива до завершения операции обмена границ. |
| Writing to remote data buffer <var> | Запись в буфер удаленного доступа. |
| Write to remote element in sequential branch | Обращение к элементу массива в последовательной части без предварительной проверки принадлежности данного элемента текущему процессору. |
| WAIT for reduction without START | Ожидание завершения редукции без ее фактического запуска. |
| Using an element outside of array array <elem> | Обращение к элементу массива за пределами его границ. |
12.2.Накопление и сравнение трассировки
| Сообщение | Описание |
| Bad file structure | Нарушена структура файла трассировки. |
| Undefined keyword | Файл трассировки содержит неизвестное ключевое слово. |
| Bad command syntax | Неправильная структура записи трассировки. |
| Can't open a file <file name> | Невозможно открыть указанный файл. |
| Trace file <file name> is empty | Указанный файл трассировки не содержит информации. |
| Bad trace structure (missing current loop) | Нарушена структура файла трассировки. Отсутствует запись начала цикла. |
| No current loop | Отсутствует запись начала цикла. |
| Unexpected iteration of loop | Эталонная трассировка не содержит записи о выполнении данной итерации. |
| Double execution of iteration, No = <iter no> | Повторное исполнение той же итерации. |
| Unexpected loop execution | Эталонная трассировка не содержит записи о начале выполнения данного цикла. |
| Abnormal loop exit | Завершение цикла не соответствует записи в эталонной трассировке. |
| Unexpected use of variable | Эталонная трассировка не содержит записи об использовании данной переменной. |
| Unexpected trace record | Эталонная трассировка не содержит записи о исполнении данного события. |
| Different <type> values: <standard value> != <current value> | Значение переменной не соответствует эталонной трассировке. |
| Different <type> values of reduction variable: <standard value> != <current value> | Значение результата вычисления редукции не соответствует эталонной трассировке. |
13.Структура файла описания циклов
| # Trace size = | <размер всего файла трассировки в байтах> |
| # String count = | <число строк всего файла трассировки> |















