omnet 中的导航层次结构错误:模拟终止,退出代码:139
Navigation hierarchy error in omnet: Simulation terminated with exit code: 139
我正在尝试使用以下代码导航到 2 级上层模块:-
cModule* parentmod = getParentModule();
cModule* grantParentmod = parentmod->getParentModule();
for (cSubModIterator iter(*grantParentmod); !iter.end();iter++)
EV<<"Current module is "<< iter()->getFullName() <<endl;
输出是:-
Current module is notificationBoard
Current module is mobility
Current module is udpApp[0]
Current module is udpApp[1]
Current module is udp
Current module is networkLayer
Current module is routingTable
Current module is interfaceTable
Current module is wlan[0]
然而,当我直接尝试通过以下代码访问 udpApp[0] 时:-
cModule* parentmod = getParentModule();
cModule* grantParentmod = parentmod->getParentModule();
cModule* udpmod = parentmod->getParentModule()->getSubmodule("udpApp[0]");
EV<<"Current module is "<< udpmod->getFullName() <<endl;
模拟在 运行 时间结束,出现以下错误:模拟终止,退出代码:139,这意味着分段错误。但是,如果我使用 'mobility' 之类的任何其他模块而不是 'udpApp[0]' 那么它就可以正常工作。
任何人都可以帮我找出解决这种情况的可能方法。
您收到此错误是因为您正在尝试取消引用 Null 指针。您得到一个 Null 指针,因为提供给 getSubmodule 的模块名称 "xyz[123]" 不存在。它不存在,因为方括号中的数字不是子模块名称的一部分,而是它在模块向量中的索引。必须在 getSubmodule.
的调用中单独指定名称和索引
我正在尝试使用以下代码导航到 2 级上层模块:-
cModule* parentmod = getParentModule();
cModule* grantParentmod = parentmod->getParentModule();
for (cSubModIterator iter(*grantParentmod); !iter.end();iter++)
EV<<"Current module is "<< iter()->getFullName() <<endl;
输出是:-
Current module is notificationBoard
Current module is mobility
Current module is udpApp[0]
Current module is udpApp[1]
Current module is udp
Current module is networkLayer
Current module is routingTable
Current module is interfaceTable
Current module is wlan[0]
然而,当我直接尝试通过以下代码访问 udpApp[0] 时:-
cModule* parentmod = getParentModule();
cModule* grantParentmod = parentmod->getParentModule();
cModule* udpmod = parentmod->getParentModule()->getSubmodule("udpApp[0]");
EV<<"Current module is "<< udpmod->getFullName() <<endl;
模拟在 运行 时间结束,出现以下错误:模拟终止,退出代码:139,这意味着分段错误。但是,如果我使用 'mobility' 之类的任何其他模块而不是 'udpApp[0]' 那么它就可以正常工作。
任何人都可以帮我找出解决这种情况的可能方法。
您收到此错误是因为您正在尝试取消引用 Null 指针。您得到一个 Null 指针,因为提供给 getSubmodule 的模块名称 "xyz[123]" 不存在。它不存在,因为方括号中的数字不是子模块名称的一部分,而是它在模块向量中的索引。必须在 getSubmodule.
的调用中单独指定名称和索引