Используйте причину мисс сообщения, которые, кажется, в Code Replacement Viewer анализируют и корректируют замену кода промахи.
Заменяющее Средство просмотра Кода отображает причину мисс сообщения в трассировочной информации для замены кода промахи. Легенда, перечисляющая каждое сообщение, которое появляется в отчете мисс, предшествует деталям отчета. Сообщение состоит из:
Числовой идентификатор, который идентифицирует сообщение в деталях отчета.
Текст сообщения, который в некоторых случаях включает заполнителей для имен аргументов, вызывает значения объекта сайта, значения записи таблицы и имена свойства.
Например:
1. Mismatched data types (argument name, CSO value, table entry value)
Вводная информация представляет заполнителей для фактических значений, которые появляются в деталях отчета.
В таблице Miss Source Locations, которая перечисляет детали мисс, столбец Reason включает:
Идентификатор сообщения, как перечислено в легенде.
Значения заполнителя для того экземпляра мисс обосновывают сообщение.
Следующие детали Reason указывают на неверный тип данных, потому что объект сайта вызова задает тип данных int8
для аргументов y1
, u1
, и u2
, в то время как заменяющая запись таблицы кода задает uint32
.
1. y1, int8, uint32 u1, int8, uint32 u2, int8, uint32
В зависимости от вашей ситуации и причины мисс, о которой сообщают, поиск и устранение неисправностей сообщил о промахах путем поиска экземпляров следующего:
Опечатка в заменяющем определении записи таблицы кода или исходной установке параметра.
Информация, отсутствующая в заменяющей записи таблицы кода или исходной установке параметра.
Недопустимая или неправильная информация в заменяющем определении записи таблицы кода или исходной установке параметра.
Аргументы неправильно упорядочены в заменяющем определении записи таблицы кода или источнике, заменяемом заменяющим кодом.
Не пройдено классификация алгоритмов для операции сложения или операции вычитания из-за:
Идеальный аккумулятор, не вычисляемый, потому что тип входного параметра не является фиксированной точкой или наклонными поправочными коэффициентами входных параметров, не равен.
Ввод или вывод бросает с типом броска с плавающей точкой.
Ввод или вывод бросает с типами броска, которые имеют различные наклонные поправочные коэффициенты или смещения.
Выведите броски, не являющиеся конвертируемым одному выходному броску.
Введите броски, приводящие к потере битов.
Следующий пример показывает, как использовать Заменяющую трассировочную информацию Средства просмотра Кода, чтобы диагностировать замену кода промахи. Вы, должно быть, уже рассмотрели и протестировали замены кода на свою модель.
Рассмотрите код, сгенерированный для элемента модели, ища ожидаемые замены кода. В данном примере исследуйте код, сгенерированный на блок Sub32 в модели
. Щелкните правой кнопкой по блоку и выберите C/C++ Code> Navigate to C/C++ Code.rtwdemo_crladdsub
Отчет Генерации кода открывается к местоположению сгенерированного кода для того блока.
Генератор кода заменил код, но замена была для подписанной версии 32-битной операции вычитания. Вы ожидали операцию без знака.
Регенерируйте или вновь откройте Заменяющий Отчет Кода для своей модели. Если вы уже сгенерировали отчет генерации кода, который включает Заменяющий Отчет Кода для модели rtwdemo_crladdsub
, откройте файл rtwdemo_crladdsub_ert_rtw/html/rtwdemo_crladdsub_codegen_rpt.html
. Для получения информации о том, как регенерировать отчет, смотрите, Проверяют Заменяющую Библиотеку Кода.
Щелкните по ссылке, чтобы открыть Заменяющее Средство просмотра Кода.
На левой панели средства просмотра выберите свою заменяющую таблицу кода. Следующее отображение показывает записи для заменяющей таблицы crl_table_addsub
кода.
В средней панели выберите запись таблицы RTW_OP_MINUS
с функцией реализации u32_sub_u32_u32
.
На правой панели выберите вкладку Trace Information.
Trace Information является таблицей, которая перечисляет следующую информацию для каждой мисс:
Вызовите просмотр объекта сайта. Объект сайта вызова является концептуальным представлением оператора вычитания. Генератор кода использует этот объект запросить заменяющую библиотеку кода для соответствия.
Ссылка на исходное местоположение в модели, для который генератор кода, рассмотренный заменяющий код.
Причины, что мисс произошла. Для списка причин, что промахи происходят, см. сообщения мисс Рисон.
В данном примере отчет показывает промахам для двух блоков: Sub32 и Sub8.
Найдите что источник в трассировочной информации. В зависимости от вашей ситуации и причины мисс, о которой сообщают, рассмотрите поиск условия, такого как опечатка в заменяющем определении записи таблицы кода или в исходной установке параметра. Сообщения мисс Рисон перечисляют условия рассмотреть.
В данном примере определите, почему код для блока Sub32 не был заменен кодом для 32-битной операции вычитания без знака. Причина мисс блока Sub32 указывает на неверный тип данных. Тип данных в объекте сайта вызова для этих трех аргументов является 32-битным целым числом со знаком. Заменяющая запись кода задает 32-битное целое число без знака.
Откорректируйте заменяющую запись таблицы модели или кода. Если проблема находится в модели, используйте исходную ссылку местоположения в трассировочной информации, чтобы найти, что элемент модели корректирует. В данном примере вы ожидали операцию вычитания без знака для блока Sub32. Щелкните по ссылке в отчете трассировки для блока Sub32.
Модель открывается подсвеченным блоком Sub32.
Измените настройки типа данных для этих двух входных сигналов и выходной сигнал для блока Sub32 к uint32
.
Регенерируйте код. Используйте Заменяющую трассировочную информацию Средства просмотра Кода, чтобы проверить, что ваша заменяющая запись таблицы модели или кода корректирует заменяющую проблему кода. В следующем отображении трассировочная информация показывает хит для блока Sub32.