Я знаком с командой collect
в Specman, которая возвращает все расширения указанного метода. Однако show source
для определенной структуры возвращает только определение базовой структуры, а не все расширения. Есть ли в Specman команда, эквивалентная collect
, но для структур/юнитов?
Получить исходную ссылку на все расширения структуры в Specman
Ответы (1)
в Specman нет такой команды, но поскольку e — невероятно гибкий язык, вы можете добавить любую команду, которая вам может понадобиться, используя мощные макросы e.
Например, чтобы реализовать то, что вы хотите, вы можете создать макрос, который использует механизм отражения, чтобы получить все слои желаемой структуры, а затем распечатать соответствующие исходные строки:
define <struct_collect'command> "s_collect <any>" as {
var line_num:int;
var st:rf_struct = rf_manager.get_struct_by_name("<1>");
if (st==NULL) {
out(append("struct name does not exist : <1>"));
} else {
for each in st.as_a(rf_like_struct).get_layers() {
line_num=it.get_source_line_num();
out(append("In file ",it.get_module().get_name()," line ",line_num, " : ",files.get_text_lines(it.get_module().get_full_file_name(), line_num,line_num)));
};
};
};
вы можете улучшить этот макрос, записав результаты в файл или организовать его по-другому.
Ваше здоровье
person
yuvalg
schedule
06.10.2015
show source
в виде:show source type.method.*
- person Yuri Tsoglin   schedule 07.10.2015