φ(..)メモメモ
LinuxカーネルのDocumentation/oops-tracing.txtに書いてあったんですが、oopsの":Code"に表示される機械語列はscripts/decodecodeってスクリプトで逆アセンブルしてくれるんですね。
ちなみにoopsはfedoraのbugzillaから適当に探したもので試しました。
こんな風に実行すると
$ ./scripts/decodecode < oops.txt
こんな風に出力されると( ..)φメモメモ
:Code: 55 89 e5 3e 8d 74 26 00 8b 02 2b 01 75 0e 8b 42 04 2b 41 04 75 06 8b 42 08 2b 41 08 5d c3 66 90 55 89 e5 53 3e 8d 74 26 00 8b 02 <2b> 01 75 14 8b 42 04 2b 41 04 75 0c 0f b7 42 08 0f b7 59 08 29 All code ======== 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 3e 8d 74 26 00 lea %ds:0x0(%esi,%eiz,1),%esi 8: 8b 02 mov (%edx),%eax a:* 2b 01 sub (%ecx),%eax <-- trapping instruction e: 8b 42 04 mov 0x4(%edx),%eax 11: 2b 41 04 sub 0x4(%ecx),%eax 16: 8b 42 08 mov 0x8(%edx),%eax 19: 2b 41 08 sub 0x8(%ecx),%eax 1c: 5d pop %ebp 1d: c3 ret 1e: 66 90 xchg %ax,%ax 20: 55 push %ebp 21: 89 e5 mov %esp,%ebp 23: 53 push %ebx 24: 3e 8d 74 26 00 lea %ds:0x0(%esi,%eiz,1),%esi 29: 8b 02 mov (%edx),%eax 2b:* 2b 01 sub (%ecx),%eax <-- trapping instruction 2f: 8b 42 04 mov 0x4(%edx),%eax 32: 2b 41 04 sub 0x4(%ecx),%eax 37: 0f b7 42 08 movzwl 0x8(%edx),%eax 3b: 0f b7 59 08 movzwl 0x8(%ecx),%ebx 3f: 29 .byte 0x29 Code starting with the faulting instruction =========================================== 0: 2b 01 sub (%ecx),%eax 4: 8b 42 04 mov 0x4(%edx),%eax 7: 2b 41 04 sub 0x4(%ecx),%eax c: 0f b7 42 08 movzwl 0x8(%edx),%eax 10: 0f b7 59 08 movzwl 0x8(%ecx),%ebx 14: 29 .byte 0x29 15: 90 nop 16: 90 nop 17: 90 nop