=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/ddb.html,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- www/ddb.html 2017/02/06 17:24:32 1.17 +++ www/ddb.html 2017/02/06 18:55:43 1.18 @@ -126,11 +126,11 @@
-This crash happened at offset 0x263 in the function _pf_route. +This crash happened at offset 0x263 in the function pf_route.kernel: page fault trap, code=0 -Stopped at _pf_route+0x263: mov 0x40(%edi),%edx +Stopped at pf_route+0x263: mov 0x40(%edi),%edx ddb>
The first command to run from the @@ -138,16 +138,16 @@
@@ -172,8 +172,8 @@ In the output, grep for the function name:ddb> trace -_pf_route(e28cb7e4,e28bc978,2,1fad,d0b8b120) at _pf_route+0x263 -_pf_test(2,1f4ad,e28cb7e4,b4c1) at _pf_test+0x706 -_pf_route(e28cbb00,e28bc978,2,d0a65440,d0b8b120) at _pf_route+0x207 -_pf_test(2,d0a65440,e28cbb00,d023c282) at _pf_test+0x706 -_ip_output(d0b6a200,0,0,0,0) at _ip_output+0xb67 -_icmp_send(d0b6a200,0,1,a012) at _icmp_send+0x57 -_icmp_reflect(d0b6a200,0,1,0,3) at _icmp_reflect+0x26b -_icmp_input(d0b6a200,14,0,0,d0b6a200) at _icmp_input+0x42c -_ipv4_input(d0b6a200,e289f140,d0a489e0,e289f140) at _ipv4_input+0x6eb -_ipintr(10,10,e289f140,e289f140,e28cbd38) at _ipintr+0x8d +pf_route(e28cb7e4,e28bc978,2,1fad,d0b8b120) at pf_route+0x263 +pf_test(2,1f4ad,e28cb7e4,b4c1) at pf_test+0x706 +pf_route(e28cbb00,e28bc978,2,d0a65440,d0b8b120) at pf_route+0x207 +pf_test(2,d0a65440,e28cbb00,d023c282) at pf_test+0x706 +ip_output(d0b6a200,0,0,0,0) at ip_output+0xb67 +icmp_send(d0b6a200,0,1,a012) at icmp_send+0x57 +icmp_reflect(d0b6a200,0,1,0,3) at icmp_reflect+0x26b +icmp_input(d0b6a200,14,0,0,d0b6a200) at icmp_input+0x42c +ipv4_input(d0b6a200,e289f140,d0a489e0,e289f140) at ipv4_input+0x6eb +ipintr(10,10,e289f140,e289f140,e28cbd38) at ipintr+0x8d Bad frame pointer: 0xe28cbcac ddb>
Take this first hex number 7d88 and add the offset 0x263 from @@ -184,16 +184,18 @@ 7feb -Scroll down to that line (the assembler instruction should match the one -quoted in the Stopped at line), then up to the nearest C line number: +Scroll down to the line 7feb. +The assembler instruction should match the one quoted in the Stopped at +line. +Then scroll up to the nearest C line number:-$ grep "<_pf_route>:" /tmp/pf.dis -00007d88 <_pf_route>: +$ grep "<pf_route>:" /tmp/pf.dis +00007d88 <pf_route>:
So, it's precisely line 3872 of pf.c that crashes:$ more /tmp/pf.dis /sys/net/pf.c:3872 7fe7: 0f b7 43 02 movzwl 0x2(%ebx),%eax - 7feb: 8b 57 40 mov 0x40(%edi),%edx + 7feb: 8b 57 40 mov 0x40(%edi),%edx 7fee: 39 d0 cmp %edx,%eax - 7ff0: 0f 87 92 00 00 00 ja 8088 <_pf_route+0x300> + 7ff0: 0f 87 92 00 00 00 ja 8088 <pf_route+0x300>