Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Fatal trap 12: page fault while in kernel mode
- cpuid = 4; apic id = 12
- fault virtual address = 0x78
- fault code = supervisor read data, page not present
- instruction pointer = 0x20:0xffffffff8083842d
- stack pointer = 0x28:0xfffffe00002b7a40
- frame pointer = 0x28:0xfffffe00002b7a90
- code segment = base 0x0, limit 0xfffff, type 0x1b
- = DPL 0, pres 1, long 1, def32 0, gran 1
- processor eflags = interrupt enabled, resume, IOPL = 0
- current process = 12 (irq292: mfi0)
- [ thread pid 12 tid 100105 ]
- Stopped at g_disk_done+0x2d: movq 0x78(%rcx),%r13
- db>bt
- Tracing pid 12 tid 100105 td 0xfffff80006e1b490
- g_disk_done() at g_disk_done+0x2d/frame 0xfffffe00002b7a90
- biodone() at biodone+0xe2/frame 0xfffffe00002b7ae0
- mfi_intr() at mfi_intr+0x123/frame 0xfffffe00002b7b20
- intr_event_execute_handlers() at intr_event_execute_handlers+0xab/frame 0xfffffe00002b7b60
- ithread_loop() at ithread_loop+0x96/frame 0xfffffe00002b7bb0
- fork_exit() at fork_exit+0x9a/frame 0xfffffe00002b7bf0
- fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00002b7bf0
- --- trap 0, rip = 0, rsp = 0xfffffe00002b7cb0, rbp = 0 ---
- db>
- root@orange:~ # addr2line -e /boot/kernel/kernel.symbols ffffffff8083842d
- /usr/local/BSDRP/BSDRPcur/FreeBSD/src/sys/geom/geom_disk.c:240
- ====== sc = bp2->bio_to->private; =======
- root@orange:~ # gdb /boot/kernel/kernel
- GNU gdb 6.1.1 [FreeBSD]
- Copyright 2004 Free Software Foundation, Inc.
- GDB is free software, covered by the GNU General Public License, and you are
- welcome to change it and/or distribute copies of it under certain conditions.
- Type "show copying" to see the conditions.
- There is absolutely no warranty for GDB. Type "show warranty" for details.
- This GDB was configured as "amd64-marcel-freebsd"...
- (gdb) disas g_disk_done
- Dump of assembler code for function g_disk_done:
- 0xffffffff80838400 <g_disk_done+0>: push %rbp
- 0xffffffff80838401 <g_disk_done+1>: mov %rsp,%rbp
- 0xffffffff80838404 <g_disk_done+4>: push %r15
- 0xffffffff80838406 <g_disk_done+6>: push %r14
- 0xffffffff80838408 <g_disk_done+8>: push %r13
- 0xffffffff8083840a <g_disk_done+10>: push %r12
- 0xffffffff8083840c <g_disk_done+12>: push %rbx
- 0xffffffff8083840d <g_disk_done+13>: sub $0x18,%rsp
- 0xffffffff80838411 <g_disk_done+17>: mov %rdi,%r14
- 0xffffffff80838414 <g_disk_done+20>: mov 0xa0(%r14),%rax
- 0xffffffff8083841b <g_disk_done+27>: mov 0xb8(%r14),%rbx
- 0xffffffff80838422 <g_disk_done+34>: sub 0x48(%r14),%rax
- 0xffffffff80838426 <g_disk_done+38>: mov 0x98(%rbx),%rcx
- 0xffffffff8083842d <g_disk_done+45>: mov 0x78(%rcx),%r13
- 0xffffffff80838431 <g_disk_done+49>: mov %rax,0xa8(%r14)
- 0xffffffff80838438 <g_disk_done+56>: lea -0x38(%rbp),%rdi
- 0xffffffff8083843c <g_disk_done+60>: callq 0xffffffff808dcfb0 <binuptime>
- 0xffffffff80838441 <g_disk_done+65>: mov %gs:0x0,%r12
- 0xffffffff8083844a <g_disk_done+74>: mov $0x4,%eax
- 0xffffffff8083844f <g_disk_done+79>: lock cmpxchg %r12,0x18(%r13)
- 0xffffffff80838455 <g_disk_done+85>: sete %cl
- 0xffffffff80838458 <g_disk_done+88>: lea 0x18(%r13),%r15
- 0xffffffff8083845c <g_disk_done+92>: test %cl,%cl
- 0xffffffff8083845e <g_disk_done+94>: jne 0xffffffff80838472 <g_disk_done+114>
- 0xffffffff80838460 <g_disk_done+96>: mov %r15,%rdi
- 0xffffffff80838463 <g_disk_done+99>: mov %r12,%rsi
- 0xffffffff80838466 <g_disk_done+102>: xor %edx,%edx
- 0xffffffff80838468 <g_disk_done+104>: xor %ecx,%ecx
- 0xffffffff8083846a <g_disk_done+106>: xor %r8d,%r8d
- 0xffffffff8083846d <g_disk_done+109>: callq 0xffffffff808bd200 <__mtx_lock_sleep>
- 0xffffffff80838472 <g_disk_done+114>: cmpl $0x0,0x40(%rbx)
- 0xffffffff80838476 <g_disk_done+118>: jne 0xffffffff8083847f <g_disk_done+127>
- 0xffffffff80838478 <g_disk_done+120>: mov 0x40(%r14),%eax
- 0xffffffff8083847c <g_disk_done+124>: mov %eax,0x40(%rbx)
- 0xffffffff8083847f <g_disk_done+127>: mov 0xa8(%r14),%rax
- 0xffffffff80838486 <g_disk_done+134>: add %rax,0xa8(%rbx)
- 0xffffffff8083848d <g_disk_done+141>: testb $0x7,(%r14)
- 0xffffffff80838491 <g_disk_done+145>: je 0xffffffff808384a7 <g_disk_done+167>
- 0xffffffff80838493 <g_disk_done+147>: mov 0x20(%r13),%rax
- 0xffffffff80838497 <g_disk_done+151>: mov 0x8(%rax),%rdi
- 0xffffffff8083849b <g_disk_done+155>: lea -0x38(%rbp),%rdx
- 0xffffffff8083849f <g_disk_done+159>: mov %r14,%rsi
- 0xffffffff808384a2 <g_disk_done+162>: callq 0xffffffff80905ed0 <devstat_end_transaction_bio_bt>
- 0xffffffff808384a7 <g_disk_done+167>: mov 0xb4(%rbx),%ecx
- 0xffffffff808384ad <g_disk_done+173>: inc %ecx
- 0xffffffff808384af <g_disk_done+175>: mov %ecx,0xb4(%rbx)
- 0xffffffff808384b5 <g_disk_done+181>: mov 0xb0(%rbx),%esi
- 0xffffffff808384bb <g_disk_done+187>: mov $0x4,%edx
- 0xffffffff808384c0 <g_disk_done+192>: mov %r12,%rax
- 0xffffffff808384c3 <g_disk_done+195>: lock cmpxchg %rdx,(%r15)
- 0xffffffff808384c8 <g_disk_done+200>: sete %dl
- 0xffffffff808384cb <g_disk_done+203>: cmp %ecx,%esi
- 0xffffffff808384cd <g_disk_done+205>: jne 0xffffffff808384fd <g_disk_done+253>
- 0xffffffff808384cf <g_disk_done+207>: test %dl,%dl
- 0xffffffff808384d1 <g_disk_done+209>: jne 0xffffffff808384e1 <g_disk_done+225>
- 0xffffffff808384d3 <g_disk_done+211>: mov %r15,%rdi
- 0xffffffff808384d6 <g_disk_done+214>: xor %esi,%esi
- 0xffffffff808384d8 <g_disk_done+216>: xor %edx,%edx
- 0xffffffff808384da <g_disk_done+218>: xor %ecx,%ecx
- 0xffffffff808384dc <g_disk_done+220>: callq 0xffffffff808bd590 <__mtx_unlock_sleep>
- 0xffffffff808384e1 <g_disk_done+225>: mov 0x20(%rbx),%rax
- 0xffffffff808384e5 <g_disk_done+229>: sub 0xa8(%rbx),%rax
- 0xffffffff808384ec <g_disk_done+236>: mov %rax,0x48(%rbx)
- 0xffffffff808384f0 <g_disk_done+240>: mov 0x40(%rbx),%esi
- 0xffffffff808384f3 <g_disk_done+243>: mov %rbx,%rdi
- 0xffffffff808384f6 <g_disk_done+246>: callq 0xffffffff8083a500 <g_io_deliver>
- 0xffffffff808384fb <g_disk_done+251>: jmp 0xffffffff8083850f <g_disk_done+271>
- 0xffffffff808384fd <g_disk_done+253>: test %dl,%dl
- 0xffffffff808384ff <g_disk_done+255>: jne 0xffffffff8083850f <g_disk_done+271>
- 0xffffffff80838501 <g_disk_done+257>: mov %r15,%rdi
- 0xffffffff80838504 <g_disk_done+260>: xor %esi,%esi
- 0xffffffff80838506 <g_disk_done+262>: xor %edx,%edx
- 0xffffffff80838508 <g_disk_done+264>: xor %ecx,%ecx
- 0xffffffff8083850a <g_disk_done+266>: callq 0xffffffff808bd590 <__mtx_unlock_sleep>
- 0xffffffff8083850f <g_disk_done+271>: mov %r14,%rdi
- 0xffffffff80838512 <g_disk_done+274>: callq 0xffffffff80839a30 <g_destroy_bio>
- 0xffffffff80838517 <g_disk_done+279>: add $0x18,%rsp
- 0xffffffff8083851b <g_disk_done+283>: pop %rbx
- 0xffffffff8083851c <g_disk_done+284>: pop %r12
- 0xffffffff8083851e <g_disk_done+286>: pop %r13
- 0xffffffff80838520 <g_disk_done+288>: pop %r14
- 0xffffffff80838522 <g_disk_done+290>: pop %r15
- 0xffffffff80838524 <g_disk_done+292>: pop %rbp
- 0xffffffff80838525 <g_disk_done+293>: retq
- End of assembler dump.
- (gdb) p &((struct bio *)0)->bio_to
- $1 = (struct g_provider **) 0x98
- (gdb) p &((struct g_provider *)0)->private
- $2 = (void **) 0x78
Advertisement
Add Comment
Please, Sign In to add comment