rtsDDr (1158447), страница 4

Файл №1158447 rtsDDr (Раздаточные материалы) 4 страницаrtsDDr (1158447) страница 42019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

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

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

Управление механизмами контроля областей памяти осуществляется с помощью следующих параметров файлов systrace.* .

  • EveryEventCheckBound  признак контроля всех динамически запрошенных блоков памяти по каждому трассируемому событию.

  • EveryTraceCheckBound  признак контроля всех динамически запрошенных блоков памяти при каждом обращении к функциям вывода трассировки, описанным в п.7.3. Данный контроль включает в себя контроль, задаваемый параметром EveryEventCheckBound, поскольку осуществляется и по не трассируемым (выключенным) событиям.

  • dvm_StartAddr  начальный адрес, контролируемый при трассировке области памяти.

  • dvm_FinalAddr  конечный адрес контролируемой при трассировке области памяти.

  • EveryEventCheckMem  признак контроля области памяти, заданной параметрами dvm_StartAddr и dvm_FinalAddr, при каждом трассируемом событии.

  • EveryTraceCheckMem  признак контроля заданной параметрами dvm_StartAddr и dvm_FinalAddr области памяти при каждом обращении к описанным в п.7.3 функциям вывода трассировки. Данный контроль включает в себя контроль, задаваемый параметром EveryEventCheckMem, т.к. проводится и по выключенным событиям трассировки.

  • EveryEventCheckCodeMem  признак контроля области памяти с программным кодом по каждому трассируемому событию.

  • EveryTraceCheckCodeMem  признак контроля области памяти с программным кодом при каждом обращении к функциям вывода трассировки, рассмотренным в п.7.3. Данный контроль включает в себя контроль, задаваемый параметром EveryEventCheckCodeMem.

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

  • TraceVarAddr = <адрес выводимой в трассировку переменной>;

  • TraceVarType = <номер типа выводимой в трассировку переменной>;

Адрес переменной может задаваться в десятичном или шестнадцатеричном виде (по правилам языка C). При нулевом значении адреса вывод переменной в трассировку не осуществляется.

Номер типа переменной может принимать значения:

  1. int;

  2. long;

  3. float;

  4. double;

  5. char;

  6. short.

При указания номера типа, отличающегося от перечисленных выше, вывод переменной в трассировку не производится.

7.2.6Управление выводом дополнительной информации при трассировке некоторых функций системы поддержки в расширенном режиме

  • distr_Trace – признак вывода дополнительной информации при трассировке функции distr_. Выводится карта отображения представления абстрактной машины, диапазоны локальных значений индексов для каждого измерения представления абстрактной машины, признак размножения по всем измерениям процессорной подсистемы (Repl) и признак отображения на каждый процессор какого-либо (не обязательно одного и того же) элемента представления абстрактной машины (Every).

  • align_Trace – признак вывода дополнительной информации при трассировке функции align_. Выводится карта отображения распределённого массива и диапазоны локальных значений индексов для каждого его измерения.

  • mappl_Trace – режим вывода дополнительной информации при трассировке функции mappl_:

    0

    не выводить дополнительной информации;

    1

    выводить выходные начальные и конечные значения индексных переменных параллельного цикла для текущего процессора;

    2

    дополнительно выводить карту отображения цикла.

  • dopl_Trace – признак вывода дополнительной информации при трассировке функции dopl_. Выводится очередная порция диапазонов локальных значений индексов для каждого измерения параллельного цикла.

  • PLTimeTrace признак вывода информации о времени выполнения групп витков параллельных циклов.

  • RedVarTrace – признак вывода адресов, типов и значений всех переменных редукционной группы при выполнении функций saverv_ и strtrd_ , а также в начале и конце выполнения функции waitrd_ .

  • OutIndexTrace – признак вывода выходных значений индексов для каждого измерения распределённого массива при выполнении внутренней функции системы поддержки GetIndexArray.

  • diter_Trace – признак вывода массива индексов при трассировке функции взаимодействия с DVM-отладчиком diter_.

  • drmbuf_Trace – признак вывода массива индексов при трассировке функции взаимодействия с DVM-отладчиком drmbuf_.

  • dyn_GetLocalBlock_Trace – признак трассировки вспомогательной функции DVM-отладчика dyn_GetLocalBlock.

7.3Функции вывода информации в потоки трассировки

Вывод информации в потоки трассировки осуществляется с помощью следующих функций (параметр format и следующие за ним параметры аналогичны соответствующим параметрам функции printf библиотеки языка C).

int tprintf (char *format, ... );

Функция осуществляет вывод информации во все открытые потоки трассировки. Возвращается число выведенных символов.

int pprintf (

int
char

prefix,
*format, ... );

Функция выводит информацию в открытые потоки трассировки, направленные в буфер оперативной памяти и непосредственно в файл. Кроме того, вывод производится в потоки, предназначенные для вывода информационных сообщений системы поддержки (параметр prefix равен 0 или 1), либо в потоки, предназначенные для вывода сообщений об ошибках (prefix равен 2 или 3) (см.п.8).

При значении параметра prefix, равном 1 или 3, вывод осуществляет каждый процессор решающего поля, предваряя заданную информацию своим номером (см.п.1.3 и п.4). Если значение prefix равно 0 или 2, то вывод информации в потоки трассировки осуществляет каждый процессор решающего поля, а в остальные потоки  только главный процессор (см.п.4). Предварительный вывод номера процессора в этом случае не производится.

Возвращается число выведенных символов.

void dvm_trace (

int
char

number,
*format, ... );

Функция выводит информацию о состоявшемся событии с номером number во все открытые потоки трассировки. Выводимая информация состоит из:

  • стандартной информации для события трассировки с номером number;

  • дополнительной информации, заданной параметром format и последующими параметрами, если таковые имеются.

Стандартная информация включает в себя:

  • имя события трассировки с номером number;

  • время выполнения программы, прошедшее с момента предыдущего фактического вывода информации в потоки трассировки с помощью функции dvm_trace;

  • имя файла и номер строки, вместе определяющие точку произошедшего события с номером number.

Фактический вывод информации в потоки трассировки происходит лишь в том случае, если событие с номером number включено.

Вывод дополнительной информации осуществляется только в расширенном режиме трассировки или при задании такого режима отдельно для события с номером number.

Имя файла и номер строки, определяющие точку произошедшего события, сообщаются программе трассировки макровызовом DVM_CALL. Название макроса проистекает из того, что все события трассировки, за несколькими исключениями,  это вызовы функций системы поддержки. Если событие произошло внутри системы поддержки и событием является обращение к функции, то используется макровызов RTL_CALL. Макровызовы DVM_CALL и RTL_CALL должны исполнительно предшествовать событию и максимально к нему приближены (по расположению в файле с программой). Таким образом, трассировка событий осуществляется по следующей схеме:

DVM_CALL; (или RTL_CALL;)

……………………..

< точка наступившего события >

..................................

dvm_trace( ........ );

Трассировка функций системы поддержки организована таким образом, что обращение к dvm_trace происходит внутри трассируемой функции. Наиболее предпочтительным способом использования макровызовов DVM_CALL и RTL_CALL при трассировке функций является применение операции последовательного вычисления:

( DVM_CALL , < обращение к функции > )

или

( RTL_CALL , < обращение к функции > ) .

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

ЗАМЕЧАНИЕ. Имя файла и номер строки, определяющие точку наступившего события, могут быть сообщены системе поддержки также с помощью функций

long fname_ (

char
long

*FileNamePtr,
FileNameLength );

long lnumb_ (

long

*LineNumberPtr );

FileNamePtr

указатель на текстовую строку с именем файла.

FileNameLength

длина строки с именем файла в байтах.

*LineNumberPtr

номер строки.

При выполнении функции fname_ последнему байту строки с именем файла будет присвоено нулевое значение. Функции возвращают нулевые значения.

Данные функции могут быть использованы препроцессорными программами для "привязки" точки предполагаемого события к своему входному тексту.

Отметим, что последовательность обращений

long line;
..............................
..............................
line = __LINE__ ;
fname_ ( __FILE__ ,
strlen(__FILE__)+1 ) ;
lnumb_ ( &line ) ;

эквивалентна макровызову

DVM_CALL ; .

void eprintf (

char
int
char

*FileNamePtr,
Line,
*format, . . . );

Функция выводит информацию в открытые потоки трассировки, направленные в буфер оперативной памяти и непосредственно в файл, а также в потоки, предназначенные для сообщений об ошибках (см.п.8), после чего завершает выполнение программы пользователя и системы поддержки. Информации, выводимой в потоки, предназначенные для сообщений об ошибках, предшествует вывод номера текущего процессора.

После вывода информации, заданной параметром format и последующими параметрами (если таковые имеются), выводятся строка, заданная указателем FileNamePtr и целое число, заданное параметром Line. Предполагается, что выводимые строка и число  это имя файла и номер строки, содержащие данное обращение к функции eprintf, то есть, что обращение к eprintf имеет вид:

eprintf(__FILE__ , __LINE__ , format , . . . );

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7035
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее