我熟悉Specman中的collect
命令,它返回所有指定方法的扩展名。但是,某个结构的show source
仅返回基本结构定义,而不是所有扩展。
在Specman中有一个命令,相当于collect
,但是对于结构/单位?
答案 0 :(得分:4)
在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)));
};
};
};
您可以通过将结果写入文件或以不同方式进行排列来改进此宏。
干杯