lmz:
逻辑错误不会显示错误信息,解决逻辑错误的方法就是试图从封包的生成、传输、接收、销毁的过程中发现错误。
人为制造错误
可用包交换网络的hub进程
修改其中的代码
static void route_pk(void)
{
int dest_address = 0 ; //以前没有赋值
Packet * pkptr;
FIN(route_pk());
pkptr = op_pk_get(op_intrpt_strm ());
op_pk_nfd_set_int32 (pkptr, "dest_address", //以前是 get
dest_address);
op_pk_send (pkptr, dest_address);
FOUT;
}
打开ODB
pktrace 1
pkstop 1
任何涉及到此封包的事件仿真都会停下来
continue …
可以发现错误:
在hub接收到封包后,不是set包域,而是get包域。