2006
03.30

Bughunting

Se qualcuno si dovesse trovare nella singolare condizione di debuggare un programma che cattura pacchetti, e che funziona perfettamente effettuando la cattura su una vera rete, ma che crasha miseramente quando si cattura sull’interfaccia di loopback… dia un’occhiata al proprio ifconfig:

eth0      Link encap:Ethernet  HWaddr 00:0F:20:C7:97:45
          inet addr:w.x.y.z  Bcast:w.x.y.127  Mask:255.255.255.128
          inet6 addr: fe80::20f:20ff:fec7:9745/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15777 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11395 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7136099 (6.8 MiB)  TX bytes:939205 (917.1 KiB)
          Interrupt:11 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1115 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1115 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:155221 (151.5 KiB)  TX bytes:155221 (151.5 KiB)

In questo modo dovrebbe realizzare che l’MTU dell’interfaccia lo è leggermente più alto di quello delle interfacce Ethernet. Pertanto, gli conviene dare un occhio alle proprie malloc. Io ci ho messo una settimana a capirlo… E ci sono arrivato solo grazie a Valgrind, ottimo tool.

Nessun commento.

Aggiungi il tuo commento