0
我熟悉Specman中的collect
命令,它返回所有指定方法的擴展。但是,某個結構的show source
僅返回基本結構定義,而不是所有擴展。 在Specman中是否有相當於collect
的命令,但是對於結構體/單元?獲取Specman中所有結構擴展的源參考
我熟悉Specman中的collect
命令,它返回所有指定方法的擴展。但是,某個結構的show source
僅返回基本結構定義,而不是所有擴展。 在Specman中是否有相當於collect
的命令,但是對於結構體/單元?獲取Specman中所有結構擴展的源參考
在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)));
};
};
};
你可以通過將結果寫入文件或以不同的方式安排它來改進此宏。
乾杯
順便說一句,得到的方法的擴展,你也可以使用'顯示source'命令,在形式:'節目源type.method *' –