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包域。