Paste: dump
Author: | erg |
Mode: | factor |
Date: | Wed, 25 Jul 2012 22:45:58 |
Plain Text |
(gdb) disassemble 0x7fffdd4c04a0,0x7fffdd4c107f
Dump of assembler code from 0x7fffdd4c04a0 to 0x7fffdd4c107f:
0x00007fffdd4c04a0: jg 0x7fffdd4c04a2
=> 0x00007fffdd4c04a2: add %cl,-0x77(%rcx)
0x00007fffdd4c04a5: rex.WRX clc
0x00007fffdd4c04a7: mov 0x0(%r13),%rcx
0x00007fffdd4c04ab: mov 0x40(%rcx),%rcx
0x00007fffdd4c04af: mov %rcx,(%r14)
0x00007fffdd4c04b2: callq 0x7fffdc68f100
0x00007fffdd4c04b7: callq 0x7fffdc7a0cc0
0x00007fffdd4c04bc: add $0x10,%r14
0x00007fffdd4c04c0: mov (%r15),%rcx
0x00007fffdd4c04c3: movabs $0x7fffbda1934c,%rbx
0x00007fffdd4c04cd: mov %rbx,(%r14)
0x00007fffdd4c04d0: mov %rcx,-0x8(%r14)
0x00007fffdd4c04d4: mov -0x10(%r14),%rcx
0x00007fffdd4c04d8: mov %rcx,(%r15)
0x00007fffdd4c04db: callq 0x7fffdc69c3c0
0x00007fffdd4c04e0: add $0x8,%r15
0x00007fffdd4c04e4: movq $0x1,(%r15)
0x00007fffdd4c04eb: callq 0x7fffdc8c98e0
0x00007fffdd4c04f0: sub $0x10,%r15
0x00007fffdd4c04f4: sub $0x8,%r14
0x00007fffdd4c04f8: mov 0x0(%r13),%rcx
0x00007fffdd4c04fc: lea -0x8(%rsp),%rbx
0x00007fffdd4c0501: mov %rbx,(%rcx)
0x00007fffdd4c0504: mov %r14,0x10(%rcx)
0x00007fffdd4c0508: mov %r15,0x18(%rcx)
0x00007fffdd4c050c: mov (%r14),%rcx
0x00007fffdd4c050f: xor %rbx,%rbx
0x00007fffdd4c0512: cmp $0x1,%rcx
0x00007fffdd4c0516: je 0x7fffdd4c0535
0x00007fffdd4c051c: mov %rcx,%rbx
0x00007fffdd4c051f: and $0xf,%rbx
0x00007fffdd4c0523: cmp $0x6,%rbx
0x00007fffdd4c0527: lea 0x7(%rcx),%rbx
0x00007fffdd4c052b: jne 0x7fffdd4c0535
0x00007fffdd4c0531: mov 0x1a(%rcx),%rbx
0x00007fffdd4c0535: mov %rbx,0x30(%rsp)
0x00007fffdd4c053a: mov 0x8(%r14),%rcx
0x00007fffdd4c053e: xor %rax,%rax
0x00007fffdd4c0541: cmp $0x1,%rcx
0x00007fffdd4c0545: je 0x7fffdd4c0564
0x00007fffdd4c054b: mov %rcx,%rax
0x00007fffdd4c054e: and $0xf,%rax
0x00007fffdd4c0552: cmp $0x6,%rax
0x00007fffdd4c0556: lea 0x7(%rcx),%rax
0x00007fffdd4c055a: jne 0x7fffdd4c0564
0x00007fffdd4c0560: mov 0x1a(%rcx),%rax
0x00007fffdd4c0564: mov %rax,0x38(%rsp)
0x00007fffdd4c0569: mov 0x10(%r15),%rcx
0x00007fffdd4c056d: xor %r12,%r12
0x00007fffdd4c0570: cmp $0x1,%rcx
0x00007fffdd4c0574: je 0x7fffdd4c0593
0x00007fffdd4c057a: mov %rcx,%r12
0x00007fffdd4c057d: and $0xf,%r12
0x00007fffdd4c0581: cmp $0x6,%r12
0x00007fffdd4c0585: lea 0x7(%rcx),%r12
0x00007fffdd4c0589: jne 0x7fffdd4c0593
0x00007fffdd4c058f: mov 0x1a(%rcx),%r12
0x00007fffdd4c0593: mov %r12,0x40(%rsp)
0x00007fffdd4c0598: mov 0x30(%rsp),%rdi
0x00007fffdd4c059d: mov 0x38(%rsp),%rsi
0x00007fffdd4c05a2: mov 0x40(%rsp),%rdx
0x00007fffdd4c05a7: xor %rax,%rax
0x00007fffdd4c05aa: movabs $0x7ffff645e700,%r11
0x00007fffdd4c05b4: rex.WB callq *%r11
0x00007fffdd4c05b7: mov 0x8(%r15),%rcx
0x00007fffdd4c05bb: xor %rbx,%rbx
0x00007fffdd4c05be: cmp $0x1,%rcx
0x00007fffdd4c05c2: je 0x7fffdd4c05e1
0x00007fffdd4c05c8: mov %rcx,%rbx
0x00007fffdd4c05cb: and $0xf,%rbx
0x00007fffdd4c05cf: cmp $0x6,%rbx
0x00007fffdd4c05d3: lea 0x7(%rcx),%rbx
0x00007fffdd4c05d7: jne 0x7fffdd4c05e1
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c05dd: mov 0x1a(%rcx),%rbx
0x00007fffdd4c05e1: mov %rbx,0x48(%rsp)
0x00007fffdd4c05e6: mov 0x48(%rsp),%rdi
0x00007fffdd4c05eb: xor %rax,%rax
0x00007fffdd4c05ee: movabs $0x7ffff63ccf20,%r11
0x00007fffdd4c05f8: rex.WB callq *%r11
0x00007fffdd4c05fb: mov 0x0(%r13),%rcx
0x00007fffdd4c05ff: mov 0x48(%rcx),%rcx
0x00007fffdd4c0603: mov %rcx,(%r14)
0x00007fffdd4c0606: callq 0x7fffdcd2e5f0
0x00007fffdd4c060b: callq 0x7fffdcbf2160
0x00007fffdd4c0610: mov %eax,-0xe3c616(%rip) # 0x7fffdc684000
0x00007fffdd4c0616: add $0x58,%rsp
0x00007fffdd4c061a: lea 0x5(%rip),%rbx # 0x7fffdd4c0626
0x00007fffdd4c0621: jmpq 0x7fffdcd03e50
0x00007fffdd4c0626: sub $0x18,%r14
0x00007fffdd4c062a: callq 0x7fffdcb76e80
0x00007fffdd4c062f: add $0x8,%r15
0x00007fffdd4c0633: sub $0x8,%r14
0x00007fffdd4c0637: mov 0x8(%r14),%rcx
0x00007fffdd4c063b: mov %rcx,(%r15)
0x00007fffdd4c063e: callq 0x7fffdcbf2160
0x00007fffdd4c0643: callq 0x7fffdcbf3830
0x00007fffdd4c0648: sub $0x8,%r15
0x00007fffdd4c064c: add $0x8,%r14
0x00007fffdd4c0650: mov 0x8(%r15),%rcx
0x00007fffdd4c0654: mov %rcx,(%r14)
0x00007fffdd4c0657: callq 0x7fffdc74ef00
0x00007fffdd4c065c: add %al,(%rax)
0x00007fffdd4c065e: add %al,(%rax)
0x00007fffdd4c0660: jb 0x7fffdd4c066d
0x00007fffdd4c0662: add %al,0x0(%rip) # 0x7fffdd4c0668
0x00007fffdd4c0668: mov %fs,%ecx
0x00007fffdd4c066a: (bad)
0x00007fffdd4c066b: sar $0x7f,%bh
0x00007fffdd4c066e: add %al,(%rax)
0x00007fffdd4c0670: loop 0x7fffdd4c06db
0x00007fffdd4c0672: push %rcx
0x00007fffdd4c0673: retq
0x00007fffdd4c0674: (bad)
0x00007fffdd4c0675: jg 0x7fffdd4c0677
0x00007fffdd4c0677: add %bl,-0x3cae62(%rcx)
0x00007fffdd4c067d: jg 0x7fffdd4c067f
0x00007fffdd4c067f: add %cl,0x1c397a05(%rcx)
0x00007fffdd4c0685: decl -0x7d(%rax)
0x00007fffdd4c0688: in (%dx),%al
0x00007fffdd4c0689: rex.W
0x00007fffdd4c068a: add $0x8,%r15
0x00007fffdd4c068e: sub $0x8,%r14
0x00007fffdd4c0692: mov 0x8(%r14),%rcx
0x00007fffdd4c0696: mov %rcx,(%r15)
0x00007fffdd4c0699: callq 0x7fffdc97c8f0
0x00007fffdd4c069e: sub $0x8,%r14
0x00007fffdd4c06a2: mov 0x8(%r14),%rcx
0x00007fffdd4c06a6: movabs $0x7fffbf1fabb7,%rbx
0x00007fffdd4c06b0: mov %rcx,0x9(%rbx)
0x00007fffdd4c06b4: lea 0x9(%rbx),%rcx
0x00007fffdd4c06b8: shr $0x8,%rcx
0x00007fffdd4c06bc: movabs $0x7f7fe0c3cc10,%rax
0x00007fffdd4c06c6: rex.W movb $0xc0,(%rcx,%rax,1)
0x00007fffdd4c06cb: shr $0xa,%rcx
0x00007fffdd4c06cf: movabs $0xffffffffe06cc5a3,%rax
0x00007fffdd4c06d9: rex.W movb $0xc0,(%rcx,%rax,1)
0x00007fffdd4c06de: callq 0x7fffdd4ac790
0x00007fffdd4c06e3: lea 0x10(%r13),%rcx
0x00007fffdd4c06e7: mov (%rcx),%rbx
0x00007fffdd4c06ea: add $0x20,%rbx
0x00007fffdd4c06ee: cmp 0x10(%rcx),%rbx
0x00007fffdd4c06f2: jle 0x7fffdd4c0711
0x00007fffdd4c06f8: mov 0x0(%r13),%rcx
0x00007fffdd4c06fc: lea -0x8(%rsp),%rbx
0x00007fffdd4c0701: mov %rbx,(%rcx)
0x00007fffdd4c0704: mov %r14,0x10(%rcx)
0x00007fffdd4c0708: mov %r15,0x18(%rcx)
0x00007fffdd4c070c: callq 0x7fffdcd03cf0
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c0711: add $0x18,%r14
0x00007fffdd4c0715: lea 0x10(%r13),%rbx
0x00007fffdd4c0719: mov (%rbx),%rcx
0x00007fffdd4c071c: movq $0x1c,(%rcx)
0x00007fffdd4c0723: or $0x7,%rcx
0x00007fffdd4c0727: addq $0x20,(%rbx)
0x00007fffdd4c072b: movabs $0x7fffbeeb7272,%rbx
0x00007fffdd4c0735: mov %rbx,0x1(%rcx)
0x00007fffdd4c0739: mov -0x18(%r14),%rbx
0x00007fffdd4c073d: mov %rbx,0x9(%rcx)
0x00007fffdd4c0741: mov %rcx,-0x10(%r14)
0x00007fffdd4c0745: mov 0x0(%r13),%rcx
0x00007fffdd4c0749: mov 0x40(%rcx),%rcx
0x00007fffdd4c074d: mov %rcx,(%r14)
0x00007fffdd4c0750: movabs $0x7fffbda20b5c,%rcx
0x00007fffdd4c075a: mov %rcx,-0x8(%r14)
0x00007fffdd4c075e: callq 0x7fffdc68f100
0x00007fffdd4c0763: callq 0x7fffdc7a0cc0
0x00007fffdd4c0768: callq 0x7fffdd6611e0
0x00007fffdd4c076d: mov 0x0(%r13),%rcx
0x00007fffdd4c0771: lea -0x8(%rsp),%rbx
0x00007fffdd4c0776: mov %rbx,(%rcx)
0x00007fffdd4c0779: mov %r14,0x10(%rcx)
0x00007fffdd4c077d: mov %r15,0x18(%rcx)
0x00007fffdd4c0781: movabs $0x60,%rcx
0x00007fffdd4c078b: mov %rcx,(%rsp)
0x00007fffdd4c078f: mov (%r14),%rbx
0x00007fffdd4c0792: xor %rax,%rax
0x00007fffdd4c0795: cmp $0x1,%rbx
0x00007fffdd4c0799: je 0x7fffdd4c07b8
0x00007fffdd4c079f: mov %rbx,%rax
0x00007fffdd4c07a2: and $0xf,%rax
0x00007fffdd4c07a6: cmp $0x6,%rax
0x00007fffdd4c07aa: lea 0x7(%rbx),%rax
0x00007fffdd4c07ae: jne 0x7fffdd4c07b8
0x00007fffdd4c07b4: mov 0x1a(%rbx),%rax
0x00007fffdd4c07b8: mov %rax,0x8(%rsp)
0x00007fffdd4c07bd: mov 0x8(%rsp),%rdi
0x00007fffdd4c07c2: mov (%rsp),%rsi
0x00007fffdd4c07c6: xor %rax,%rax
0x00007fffdd4c07c9: movabs $0x7ffff3e367c0,%r11
0x00007fffdd4c07d3: rex.WB callq *%r11
0x00007fffdd4c07d6: mov %rax,0x8(%rsp)
0x00007fffdd4c07db: lea 0x10(%r13),%rbx
0x00007fffdd4c07df: mov (%rbx),%rcx
0x00007fffdd4c07e2: add $0x30,%rcx
0x00007fffdd4c07e6: cmp 0x10(%rbx),%rcx
0x00007fffdd4c07ea: jle 0x7fffdd4c0809
0x00007fffdd4c07f0: mov 0x0(%r13),%rcx
0x00007fffdd4c07f4: lea -0x8(%rsp),%rbx
0x00007fffdd4c07f9: mov %rbx,(%rcx)
0x00007fffdd4c07fc: mov %r14,0x10(%rcx)
0x00007fffdd4c0800: mov %r15,0x18(%rcx)
0x00007fffdd4c0804: callq 0x7fffdcd03cf0
0x00007fffdd4c0809: mov 0x8(%rsp),%rax
0x00007fffdd4c080e: movabs $0x1,%rcx
0x00007fffdd4c0818: test %rax,%rax
0x00007fffdd4c081b: je 0x7fffdd4c084f
0x00007fffdd4c0821: lea 0x10(%r13),%rbx
0x00007fffdd4c0825: mov (%rbx),%rcx
0x00007fffdd4c0828: movq $0x18,(%rcx)
0x00007fffdd4c082f: or $0x6,%rcx
0x00007fffdd4c0833: addq $0x30,(%rbx)
0x00007fffdd4c0837: movq $0x1,0x2(%rcx)
0x00007fffdd4c083f: movq $0x1,0xa(%rcx)
0x00007fffdd4c0847: mov %rax,0x12(%rcx)
0x00007fffdd4c084b: mov %rax,0x1a(%rcx)
0x00007fffdd4c084f: cmp $0x1,%rcx
0x00007fffdd4c0853: je 0x7fffdd4c08c3
0x00007fffdd4c0859: mov %rcx,0x10(%rsp)
0x00007fffdd4c085e: lea 0x10(%r13),%rax
0x00007fffdd4c0862: mov (%rax),%rbx
0x00007fffdd4c0865: add $0x20,%rbx
0x00007fffdd4c0869: cmp 0x10(%rax),%rbx
0x00007fffdd4c086d: jle 0x7fffdd4c088c
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c0873: mov 0x0(%r13),%rax
0x00007fffdd4c0877: lea -0x8(%rsp),%rbx
0x00007fffdd4c087c: mov %rbx,(%rax)
0x00007fffdd4c087f: mov %r14,0x10(%rax)
0x00007fffdd4c0883: mov %r15,0x18(%rax)
0x00007fffdd4c0887: callq 0x7fffdcd03cf0
0x00007fffdd4c088c: lea 0x10(%r13),%rbx
0x00007fffdd4c0890: mov (%rbx),%rcx
0x00007fffdd4c0893: movq $0x1c,(%rcx)
0x00007fffdd4c089a: or $0x7,%rcx
0x00007fffdd4c089e: addq $0x20,(%rbx)
0x00007fffdd4c08a2: movabs $0x7fffbdae6f12,%rbx
0x00007fffdd4c08ac: mov %rbx,0x1(%rcx)
0x00007fffdd4c08b0: mov 0x10(%rsp),%rbx
0x00007fffdd4c08b5: mov %rbx,0x9(%rcx)
0x00007fffdd4c08b9: mov %rcx,0x18(%rsp)
0x00007fffdd4c08be: jmpq 0x7fffdd4c08d2
0x00007fffdd4c08c3: movabs $0x1,%rcx
0x00007fffdd4c08cd: mov %rcx,0x18(%rsp)
0x00007fffdd4c08d2: lea 0x10(%r13),%rbx
0x00007fffdd4c08d6: mov (%rbx),%rax
0x00007fffdd4c08d9: add $0x20,%rax
0x00007fffdd4c08dd: cmp 0x10(%rbx),%rax
0x00007fffdd4c08e1: jle 0x7fffdd4c0900
0x00007fffdd4c08e7: mov 0x0(%r13),%rbx
0x00007fffdd4c08eb: lea -0x8(%rsp),%rax
0x00007fffdd4c08f0: mov %rax,(%rbx)
0x00007fffdd4c08f3: mov %r14,0x10(%rbx)
0x00007fffdd4c08f7: mov %r15,0x18(%rbx)
0x00007fffdd4c08fb: callq 0x7fffdcd03cf0
0x00007fffdd4c0900: add $0x18,%r14
0x00007fffdd4c0904: lea 0x10(%r13),%rcx
0x00007fffdd4c0908: mov (%rcx),%rbx
0x00007fffdd4c090b: movq $0x1c,(%rbx)
0x00007fffdd4c0912: or $0x7,%rbx
0x00007fffdd4c0916: addq $0x20,(%rcx)
0x00007fffdd4c091a: mov %rbx,-0x10(%r14)
0x00007fffdd4c091e: movabs $0x7fffbf55a5c2,%rcx
0x00007fffdd4c0928: mov %rcx,0x1(%rbx)
0x00007fffdd4c092c: mov 0x18(%rsp),%rcx
0x00007fffdd4c0931: mov %rcx,0x9(%rbx)
0x00007fffdd4c0935: mov %rcx,-0x18(%r14)
0x00007fffdd4c0939: movabs $0x7fffbda20b5c,%rcx
0x00007fffdd4c0943: mov %rcx,-0x8(%r14)
0x00007fffdd4c0947: mov 0x0(%r13),%rcx
0x00007fffdd4c094b: mov 0x40(%rcx),%rcx
0x00007fffdd4c094f: mov %rcx,(%r14)
0x00007fffdd4c0952: callq 0x7fffdc68f100
0x00007fffdd4c0957: callq 0x7fffdc7a0cc0
0x00007fffdd4c095c: add $0x10,%r15
0x00007fffdd4c0960: movq $0x1,(%r15)
0x00007fffdd4c0967: mov (%r14),%rcx
0x00007fffdd4c096a: mov %rcx,-0x8(%r15)
0x00007fffdd4c096e: callq 0x7fffdd6621f0
0x00007fffdd4c0973: sub $0x8,%r14
0x00007fffdd4c0977: mov 0x0(%r13),%rcx
0x00007fffdd4c097b: lea -0x8(%rsp),%rbx
0x00007fffdd4c0980: mov %rbx,(%rcx)
0x00007fffdd4c0983: mov %r14,0x10(%rcx)
0x00007fffdd4c0987: mov %r15,0x18(%rcx)
0x00007fffdd4c098b: mov (%r15),%rcx
0x00007fffdd4c098e: mov 0x8(%r14),%rbx
0x00007fffdd4c0992: xor %rax,%rax
0x00007fffdd4c0995: cmp $0x1,%rbx
0x00007fffdd4c0999: je 0x7fffdd4c09b8
0x00007fffdd4c099f: mov %rbx,%rax
0x00007fffdd4c09a2: and $0xf,%rax
0x00007fffdd4c09a6: cmp $0x6,%rax
0x00007fffdd4c09aa: lea 0x7(%rbx),%rax
0x00007fffdd4c09ae: jne 0x7fffdd4c09b8
0x00007fffdd4c09b4: mov 0x1a(%rbx),%rax
0x00007fffdd4c09b8: mov %rax,0x20(%rsp)
0x00007fffdd4c09bd: xor %rbx,%rbx
0x00007fffdd4c09c0: cmp $0x1,%rcx
0x00007fffdd4c09c4: je 0x7fffdd4c09e3
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c09ca: mov %rcx,%rbx
0x00007fffdd4c09cd: and $0xf,%rbx
0x00007fffdd4c09d1: cmp $0x6,%rbx
0x00007fffdd4c09d5: lea 0x7(%rcx),%rbx
0x00007fffdd4c09d9: jne 0x7fffdd4c09e3
0x00007fffdd4c09df: mov 0x1a(%rcx),%rbx
0x00007fffdd4c09e3: mov %rbx,0x28(%rsp)
0x00007fffdd4c09e8: mov 0x20(%rsp),%rdi
0x00007fffdd4c09ed: mov 0x28(%rsp),%rsi
0x00007fffdd4c09f2: xor %rax,%rax
0x00007fffdd4c09f5: movabs $0x7ffff3e36830,%r11
0x00007fffdd4c09ff: rex.WB callq *%r11
0x00007fffdd4c0a02: mov -0x10(%r15),%rcx
0x00007fffdd4c0a06: mov -0x8(%r15),%rbx
0x00007fffdd4c0a0a: mov %rbx,(%r15)
0x00007fffdd4c0a0d: mov %rbx,-0x10(%r15)
0x00007fffdd4c0a11: mov %rcx,-0x8(%r15)
0x00007fffdd4c0a15: callq 0x7fffdcb76e40
0x00007fffdd4c0a1a: callq 0x7fffdcb7d610
0x00007fffdd4c0a1f: sub $0x10,%r15
0x00007fffdd4c0a23: add $0x10,%r14
0x00007fffdd4c0a27: mov -0x10(%r14),%rcx
0x00007fffdd4c0a2b: mov 0x10(%r15),%rbx
0x00007fffdd4c0a2f: mov 0x8(%r15),%rax
0x00007fffdd4c0a33: cmp $0x1,%rcx
0x00007fffdd4c0a37: je 0x7fffdd4c1129
0x00007fffdd4c0a3d: add $0x8,%r15
0x00007fffdd4c0a41: sub $0x8,%r14
0x00007fffdd4c0a45: mov 0x0(%r13),%rbx
0x00007fffdd4c0a49: mov 0x48(%rbx),%rbx
0x00007fffdd4c0a4d: mov 0x11(%rbx),%r12
0x00007fffdd4c0a51: mov 0x9(%rbx),%rdi
0x00007fffdd4c0a55: mov 0x6(%rdi),%rdi
0x00007fffdd4c0a59: cmp %rdi,%r12
0x00007fffdd4c0a5c: jl 0x7fffdd4c0b28
0x00007fffdd4c0a62: add $0x10,%r14
0x00007fffdd4c0a66: lea 0x10(%r12),%rdi
0x00007fffdd4c0a6b: movabs $0x3,%r10
0x00007fffdd4c0a75: mov %rdi,%rsi
0x00007fffdd4c0a78: imul %r10,%rsi
0x00007fffdd4c0a7c: jo 0x7fffdd4c0a9d
0x00007fffdd4c0a82: sub $0x8,%r14
0x00007fffdd4c0a86: mov %r12,-0x10(%r14)
0x00007fffdd4c0a8a: mov %rcx,-0x18(%r14)
0x00007fffdd4c0a8e: mov %rbx,-0x8(%r14)
0x00007fffdd4c0a92: mov %rsi,(%r14)
0x00007fffdd4c0a95: mov %rax,(%r15)
0x00007fffdd4c0a98: jmpq 0x7fffdd4c0ac0
0x00007fffdd4c0a9d: mov %rcx,-0x20(%r14)
0x00007fffdd4c0aa1: mov %rdi,-0x8(%r14)
0x00007fffdd4c0aa5: mov %rax,(%r15)
0x00007fffdd4c0aa8: shl $0x4,%r10
0x00007fffdd4c0aac: mov %r10,(%r14)
0x00007fffdd4c0aaf: mov %r12,-0x18(%r14)
0x00007fffdd4c0ab3: mov %rbx,-0x10(%r14)
0x00007fffdd4c0ab7: callq 0x7fffdca54e50
0x00007fffdd4c0abc: mov -0x8(%r14),%rbx
0x00007fffdd4c0ac0: add $0x8,%r15
0x00007fffdd4c0ac4: add $0x8,%r14
0x00007fffdd4c0ac8: mov %rbx,(%r15)
0x00007fffdd4c0acb: mov 0x9(%rbx),%rbx
0x00007fffdd4c0acf: mov %rbx,(%r14)
0x00007fffdd4c0ad2: callq 0x7fffdc860da0
0x00007fffdd4c0ad7: sub $0x8,%r15
0x00007fffdd4c0adb: sub $0x8,%r14
0x00007fffdd4c0adf: mov 0x8(%r15),%rcx
0x00007fffdd4c0ae3: mov 0x8(%r14),%rbx
0x00007fffdd4c0ae7: mov %rbx,0x9(%rcx)
0x00007fffdd4c0aeb: lea 0x9(%rcx),%rbx
0x00007fffdd4c0aef: shr $0x8,%rbx
0x00007fffdd4c0af3: movabs $0x7f7fe0c3cc10,%rax
0x00007fffdd4c0afd: rex.W movb $0xc0,(%rbx,%rax,1)
0x00007fffdd4c0b02: shr $0xa,%rbx
0x00007fffdd4c0b06: movabs $0xffffffffe06cc5a3,%rax
0x00007fffdd4c0b10: rex.W movb $0xc0,(%rbx,%rax,1)
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c0b15: mov -0x8(%r14),%r12
0x00007fffdd4c0b19: mov -0x10(%r14),%rcx
0x00007fffdd4c0b1d: mov (%r14),%rbx
0x00007fffdd4c0b20: mov (%r15),%rax
0x00007fffdd4c0b23: jmpq 0x7fffdd4c0b28
0x00007fffdd4c0b28: mov %r12,%rdi
0x00007fffdd4c0b2b: sar $0x4,%rdi
0x00007fffdd4c0b2f: add $0x1,%rdi
0x00007fffdd4c0b33: movabs $0x3ffffffffffffff,%r10
0x00007fffdd4c0b3d: and %r10,%rdi
0x00007fffdd4c0b40: shl $0x4,%rdi
0x00007fffdd4c0b44: mov %rdi,0x11(%rbx)
0x00007fffdd4c0b48: sub $0x8,%r15
0x00007fffdd4c0b4c: mov 0x9(%rbx),%rbx
0x00007fffdd4c0b50: sar $0x4,%r12
0x00007fffdd4c0b54: mov %rcx,0xe(%rbx,%r12,8)
0x00007fffdd4c0b59: lea 0xe(%rbx,%r12,8),%rcx
0x00007fffdd4c0b5e: shr $0x8,%rcx
0x00007fffdd4c0b62: movabs $0x7f7fe0c3cc10,%rdi
0x00007fffdd4c0b6c: rex.W movb $0xc0,(%rcx,%rdi,1)
0x00007fffdd4c0b71: shr $0xa,%rcx
0x00007fffdd4c0b75: movabs $0xffffffffe06cc5a3,%rdi
0x00007fffdd4c0b7f: rex.W movb $0xc0,(%rcx,%rdi,1)
0x00007fffdd4c0b84: movabs $0x7fffc0170ce7,%rcx
0x00007fffdd4c0b8e: movabs $0x7fffc3518987,%rbx
0x00007fffdd4c0b98: mov 0x9(%rbx),%r12
0x00007fffdd4c0b9c: cmp %r12,%rax
0x00007fffdd4c0b9f: je 0x7fffdd4c0c92
0x00007fffdd4c0ba5: sub $0x8,%r14
0x00007fffdd4c0ba9: add $0x8,%r15
0x00007fffdd4c0bad: mov %rax,-0x8(%r14)
0x00007fffdd4c0bb1: mov %rcx,(%r15)
0x00007fffdd4c0bb4: mov %rax,(%r14)
0x00007fffdd4c0bb7: callq 0x7fffdd6617e0
0x00007fffdd4c0bbc: sub $0x8,%r15
0x00007fffdd4c0bc0: add $0x8,%r14
0x00007fffdd4c0bc4: mov -0x8(%r14),%rcx
0x00007fffdd4c0bc8: mov 0x8(%r15),%rbx
0x00007fffdd4c0bcc: movabs $0x7fffbd8da99c,%rax
0x00007fffdd4c0bd6: cmp %rax,%rcx
0x00007fffdd4c0bd9: jne 0x7fffdd4c0bfe
0x00007fffdd4c0bdf: sub $0x10,%r14
0x00007fffdd4c0be3: add $0x8,%r14
0x00007fffdd4c0be7: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0bf1: mov %rcx,(%r14)
0x00007fffdd4c0bf4: callq 0x7fffdc6cb310
0x00007fffdd4c0bf9: jmpq 0x7fffdd4c109a
0x00007fffdd4c0bfe: mov 0x19(%rcx),%rax
0x00007fffdd4c0c02: cmp $0x1,%rax
0x00007fffdd4c0c06: je 0x7fffdd4c0c18
0x00007fffdd4c0c0c: sub $0x10,%r14
0x00007fffdd4c0c10: mov (%r14),%rcx
0x00007fffdd4c0c13: jmpq 0x7fffdd4c100d
0x00007fffdd4c0c18: add $0x8,%r15
0x00007fffdd4c0c1c: add $0x8,%r14
0x00007fffdd4c0c20: mov %rbx,-0x8(%r14)
0x00007fffdd4c0c24: mov %rcx,(%r14)
0x00007fffdd4c0c27: mov %rbx,(%r15)
0x00007fffdd4c0c2a: callq 0x7fffdcbf1990
0x00007fffdd4c0c2f: sub $0x8,%r15
0x00007fffdd4c0c33: add $0x8,%r14
0x00007fffdd4c0c37: mov 0x8(%r15),%rcx
0x00007fffdd4c0c3b: mov %rcx,(%r14)
0x00007fffdd4c0c3e: callq 0x7fffdcbf1990
0x00007fffdd4c0c43: mov -0x8(%r14),%rcx
0x00007fffdd4c0c47: mov (%r14),%rbx
0x00007fffdd4c0c4a: cmp $0x1,%rcx
0x00007fffdd4c0c4e: je 0x7fffdd4c0c73
0x00007fffdd4c0c54: sub $0x10,%r14
0x00007fffdd4c0c58: cmp $0x1,%rcx
0x00007fffdd4c0c5c: je 0x7fffdd4c0c67
0x00007fffdd4c0c62: jmpq 0x7fffdd4c0ea5
0x00007fffdd4c0c67: mov -0x8(%r14),%rcx
0x00007fffdd4c0c6b: mov (%r14),%rbx
0x00007fffdd4c0c6e: jmpq 0x7fffdd4c0ecb
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c0c73: sub $0x10,%r14
0x00007fffdd4c0c77: cmp $0x1,%rbx
0x00007fffdd4c0c7b: je 0x7fffdd4c0c86
0x00007fffdd4c0c81: jmpq 0x7fffdd4c0ea5
0x00007fffdd4c0c86: mov -0x8(%r14),%rcx
0x00007fffdd4c0c8a: mov (%r14),%rbx
0x00007fffdd4c0c8d: jmpq 0x7fffdd4c0ecb
0x00007fffdd4c0c92: mov 0x11(%rbx),%rbx
0x00007fffdd4c0c96: mov 0x1f0(%r13),%r12
0x00007fffdd4c0c9d: cmp %r12,%rbx
0x00007fffdd4c0ca0: movabs $0x1,%rdi
0x00007fffdd4c0caa: movabs $0x7fffbd8c03cc,%r10
0x00007fffdd4c0cb4: cmove %r10,%rdi
0x00007fffdd4c0cb8: cmp %r12,%rbx
0x00007fffdd4c0cbb: je 0x7fffdd4c0dae
0x00007fffdd4c0cc1: sub $0x8,%r14
0x00007fffdd4c0cc5: add $0x8,%r15
0x00007fffdd4c0cc9: mov %rax,-0x8(%r14)
0x00007fffdd4c0ccd: mov %rcx,(%r15)
0x00007fffdd4c0cd0: mov %rax,(%r14)
0x00007fffdd4c0cd3: callq 0x7fffdc7e4110
0x00007fffdd4c0cd8: sub $0x8,%r15
0x00007fffdd4c0cdc: add $0x8,%r14
0x00007fffdd4c0ce0: mov -0x8(%r14),%rcx
0x00007fffdd4c0ce4: mov 0x8(%r15),%rbx
0x00007fffdd4c0ce8: movabs $0x7fffbd8da99c,%rax
0x00007fffdd4c0cf2: cmp %rax,%rcx
0x00007fffdd4c0cf5: jne 0x7fffdd4c0d1a
0x00007fffdd4c0cfb: sub $0x10,%r14
0x00007fffdd4c0cff: add $0x8,%r14
0x00007fffdd4c0d03: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0d0d: mov %rcx,(%r14)
0x00007fffdd4c0d10: callq 0x7fffdc6cb310
0x00007fffdd4c0d15: jmpq 0x7fffdd4c109a
0x00007fffdd4c0d1a: mov 0x19(%rcx),%rax
0x00007fffdd4c0d1e: cmp $0x1,%rax
0x00007fffdd4c0d22: je 0x7fffdd4c0d34
0x00007fffdd4c0d28: sub $0x10,%r14
0x00007fffdd4c0d2c: mov (%r14),%rcx
0x00007fffdd4c0d2f: jmpq 0x7fffdd4c100d
0x00007fffdd4c0d34: add $0x8,%r15
0x00007fffdd4c0d38: add $0x8,%r14
0x00007fffdd4c0d3c: mov %rbx,-0x8(%r14)
0x00007fffdd4c0d40: mov %rcx,(%r14)
0x00007fffdd4c0d43: mov %rbx,(%r15)
0x00007fffdd4c0d46: callq 0x7fffdcbf1990
0x00007fffdd4c0d4b: sub $0x8,%r15
0x00007fffdd4c0d4f: add $0x8,%r14
0x00007fffdd4c0d53: mov 0x8(%r15),%rcx
0x00007fffdd4c0d57: mov %rcx,(%r14)
0x00007fffdd4c0d5a: callq 0x7fffdcbf1990
0x00007fffdd4c0d5f: mov -0x8(%r14),%rcx
0x00007fffdd4c0d63: mov (%r14),%rbx
0x00007fffdd4c0d66: cmp $0x1,%rcx
0x00007fffdd4c0d6a: je 0x7fffdd4c0d8f
0x00007fffdd4c0d70: sub $0x10,%r14
0x00007fffdd4c0d74: cmp $0x1,%rcx
0x00007fffdd4c0d78: je 0x7fffdd4c0d83
0x00007fffdd4c0d7e: jmpq 0x7fffdd4c0ea5
0x00007fffdd4c0d83: mov -0x8(%r14),%rcx
0x00007fffdd4c0d87: mov (%r14),%rbx
0x00007fffdd4c0d8a: jmpq 0x7fffdd4c0ecb
0x00007fffdd4c0d8f: sub $0x10,%r14
0x00007fffdd4c0d93: cmp $0x1,%rbx
0x00007fffdd4c0d97: je 0x7fffdd4c0da2
0x00007fffdd4c0d9d: jmpq 0x7fffdd4c0ea5
0x00007fffdd4c0da2: mov -0x8(%r14),%rcx
0x00007fffdd4c0da6: mov (%r14),%rbx
0x00007fffdd4c0da9: jmpq 0x7fffdd4c0ecb
0x00007fffdd4c0dae: sub $0x8,%r14
0x00007fffdd4c0db2: cmp $0x1,%rdi
0x00007fffdd4c0db6: je 0x7fffdd4c0dcd
0x00007fffdd4c0dbc: sub $0x8,%r14
0x00007fffdd4c0dc0: mov %rax,(%r14)
0x00007fffdd4c0dc3: callq 0x7fffdc6cb310
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c0dc8: jmpq 0x7fffdd4c109a
0x00007fffdd4c0dcd: add $0x8,%r15
0x00007fffdd4c0dd1: mov %rax,-0x8(%r14)
0x00007fffdd4c0dd5: mov %rcx,(%r15)
0x00007fffdd4c0dd8: mov %rax,(%r14)
0x00007fffdd4c0ddb: callq 0x7fffdc7e4110
0x00007fffdd4c0de0: sub $0x8,%r15
0x00007fffdd4c0de4: add $0x8,%r14
0x00007fffdd4c0de8: mov -0x8(%r14),%rcx
0x00007fffdd4c0dec: mov 0x8(%r15),%rbx
0x00007fffdd4c0df0: movabs $0x7fffbd8da99c,%rax
0x00007fffdd4c0dfa: cmp %rax,%rcx
0x00007fffdd4c0dfd: jne 0x7fffdd4c0e22
0x00007fffdd4c0e03: sub $0x10,%r14
0x00007fffdd4c0e07: add $0x8,%r14
0x00007fffdd4c0e0b: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0e15: mov %rcx,(%r14)
0x00007fffdd4c0e18: callq 0x7fffdc6cb310
0x00007fffdd4c0e1d: jmpq 0x7fffdd4c109a
0x00007fffdd4c0e22: mov 0x19(%rcx),%rax
0x00007fffdd4c0e26: cmp $0x1,%rax
0x00007fffdd4c0e2a: je 0x7fffdd4c0e3c
0x00007fffdd4c0e30: sub $0x10,%r14
0x00007fffdd4c0e34: mov (%r14),%rcx
0x00007fffdd4c0e37: jmpq 0x7fffdd4c100d
0x00007fffdd4c0e3c: add $0x8,%r15
0x00007fffdd4c0e40: add $0x8,%r14
0x00007fffdd4c0e44: mov %rbx,-0x8(%r14)
0x00007fffdd4c0e48: mov %rcx,(%r14)
0x00007fffdd4c0e4b: mov %rbx,(%r15)
0x00007fffdd4c0e4e: callq 0x7fffdcbf1990
0x00007fffdd4c0e53: sub $0x8,%r15
0x00007fffdd4c0e57: add $0x8,%r14
0x00007fffdd4c0e5b: mov 0x8(%r15),%rcx
0x00007fffdd4c0e5f: mov %rcx,(%r14)
0x00007fffdd4c0e62: callq 0x7fffdcbf1990
0x00007fffdd4c0e67: mov -0x8(%r14),%rcx
0x00007fffdd4c0e6b: mov (%r14),%rbx
0x00007fffdd4c0e6e: cmp $0x1,%rcx
0x00007fffdd4c0e72: je 0x7fffdd4c0e97
0x00007fffdd4c0e78: sub $0x10,%r14
0x00007fffdd4c0e7c: cmp $0x1,%rcx
0x00007fffdd4c0e80: je 0x7fffdd4c0e8b
0x00007fffdd4c0e86: jmpq 0x7fffdd4c0ea5
0x00007fffdd4c0e8b: mov -0x8(%r14),%rcx
0x00007fffdd4c0e8f: mov (%r14),%rbx
0x00007fffdd4c0e92: jmpq 0x7fffdd4c0ecb
0x00007fffdd4c0e97: sub $0x10,%r14
0x00007fffdd4c0e9b: cmp $0x1,%rbx
0x00007fffdd4c0e9f: je 0x7fffdd4c0ec4
0x00007fffdd4c0ea5: sub $0x10,%r14
0x00007fffdd4c0ea9: add $0x8,%r14
0x00007fffdd4c0ead: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0eb7: mov %rcx,(%r14)
0x00007fffdd4c0eba: callq 0x7fffdc6cb310
0x00007fffdd4c0ebf: jmpq 0x7fffdd4c109a
0x00007fffdd4c0ec4: mov -0x8(%r14),%rcx
0x00007fffdd4c0ec8: mov (%r14),%rbx
0x00007fffdd4c0ecb: add $0x8,%r15
0x00007fffdd4c0ecf: mov %rcx,(%r14)
0x00007fffdd4c0ed2: mov %rbx,(%r15)
0x00007fffdd4c0ed5: callq 0x7fffdcbf93c0
0x00007fffdd4c0eda: sub $0x8,%r15
0x00007fffdd4c0ede: add $0x8,%r14
0x00007fffdd4c0ee2: mov 0x8(%r15),%rcx
0x00007fffdd4c0ee6: mov %rcx,(%r14)
0x00007fffdd4c0ee9: callq 0x7fffdcbf93c0
0x00007fffdd4c0eee: mov (%r14),%rcx
0x00007fffdd4c0ef1: cmp $0x1,%rcx
0x00007fffdd4c0ef5: movabs $0x1,%rcx
0x00007fffdd4c0eff: movabs $0x7fffbd8c03cc,%rbx
0x00007fffdd4c0f09: cmove %rbx,%rcx
0x00007fffdd4c0f0d: mov -0x8(%r14),%rbx
0x00007fffdd4c0f11: cmp $0x1,%rbx
0x00007fffdd4c0f15: je 0x7fffdd4c0f81
---Type <return> to continue, or q <return> to quit---
0x00007fffdd4c0f1b: sub $0x10,%r14
0x00007fffdd4c0f1f: cmp $0x1,%rcx
0x00007fffdd4c0f23: je 0x7fffdd4c0f48
0x00007fffdd4c0f29: sub $0x8,%r14
0x00007fffdd4c0f2d: add $0x8,%r14
0x00007fffdd4c0f31: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0f3b: mov %rcx,(%r14)
0x00007fffdd4c0f3e: callq 0x7fffdc6cb310
0x00007fffdd4c0f43: jmpq 0x7fffdd4c109a
0x00007fffdd4c0f48: mov (%r14),%rcx
0x00007fffdd4c0f4b: mov 0x9(%rcx),%rbx
0x00007fffdd4c0f4f: mov 0x6(%rbx),%rbx
0x00007fffdd4c0f53: cmp $0x0,%rbx
0x00007fffdd4c0f57: jle 0x7fffdd4c0f7c
0x00007fffdd4c0f5d: sub $0x8,%r14
0x00007fffdd4c0f61: add $0x8,%r14
0x00007fffdd4c0f65: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0f6f: mov %rcx,(%r14)
0x00007fffdd4c0f72: callq 0x7fffdc6cb310
0x00007fffdd4c0f77: jmpq 0x7fffdd4c109a
0x00007fffdd4c0f7c: jmpq 0x7fffdd4c0fe2
0x00007fffdd4c0f81: sub $0x10,%r14
0x00007fffdd4c0f85: cmp $0x1,%rbx
0x00007fffdd4c0f89: je 0x7fffdd4c0fae
0x00007fffdd4c0f8f: sub $0x8,%r14
0x00007fffdd4c0f93: add $0x8,%r14
0x00007fffdd4c0f97: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0fa1: mov %rcx,(%r14)
0x00007fffdd4c0fa4: callq 0x7fffdc6cb310
0x00007fffdd4c0fa9: jmpq 0x7fffdd4c109a
0x00007fffdd4c0fae: mov (%r14),%rcx
0x00007fffdd4c0fb1: mov 0x9(%rcx),%rbx
0x00007fffdd4c0fb5: mov 0x6(%rbx),%rbx
0x00007fffdd4c0fb9: cmp $0x0,%rbx
0x00007fffdd4c0fbd: jle 0x7fffdd4c0fe2
0x00007fffdd4c0fc3: sub $0x8,%r14
0x00007fffdd4c0fc7: add $0x8,%r14
0x00007fffdd4c0fcb: movabs $0x7fffc3518967,%rcx
0x00007fffdd4c0fd5: mov %rcx,(%r14)
0x00007fffdd4c0fd8: callq 0x7fffdc6cb310
0x00007fffdd4c0fdd: jmpq 0x7fffdd4c109a
0x00007fffdd4c0fe2: sub $0x8,%r14
0x00007fffdd4c0fe6: mov 0x11(%rcx),%rbx
0x00007fffdd4c0fea: mov 0x6(%rbx),%rbx
0x00007fffdd4c0fee: sar $0x4,%rbx
0x00007fffdd4c0ff2: mov 0x9(%rcx),%rcx
0x00007fffdd4c0ff6: mov 0x6(%rcx),%rcx
0x00007fffdd4c0ffa: sar $0x4,%rcx
0x00007fffdd4c0ffe: sub %rcx,%rbx
0x00007fffdd4c1001: test %rbx,%rbx
0x00007fffdd4c1004: jne 0x7fffdd4c1084
0x00007fffdd4c100a: mov (%r14),%rcx
0x00007fffdd4c100d: mov 0x1f0(%r13),%rbx
0x00007fffdd4c1014: movabs $0x7fffc3518987,%rax
0x00007fffdd4c101e: mov %rcx,0x9(%rax)
0x00007fffdd4c1022: lea 0x9(%rax),%rcx
0x00007fffdd4c1026: shr $0x8,%rcx
0x00007fffdd4c102a: movabs $0x7f7fe0c3cc10,%r12
0x00007fffdd4c1034: rex.WX movb $0xc0,(%rcx,%r12,1)
0x00007fffdd4c1039: shr $0xa,%rcx
0x00007fffdd4c103d: movabs $0xffffffffe06cc5a3,%r12
0x00007fffdd4c1047: rex.WX movb $0xc0,(%rcx,%r12,1)
0x00007fffdd4c104c: mov %rbx,0x11(%rax)
0x00007fffdd4c1050: lea 0x11(%rax),%rbx
0x00007fffdd4c1054: shr $0x8,%rbx
0x00007fffdd4c1058: movabs $0x7f7fe0c3cc10,%rcx
0x00007fffdd4c1062: rex.W movb $0xc0,(%rbx,%rcx,1)
0x00007fffdd4c1067: shr $0xa,%rbx
0x00007fffdd4c106b: movabs $0xffffffffe06cc5a3,%rcx
0x00007fffdd4c1075: rex.W movb $0xc0,(%rbx,%rcx,1)
0x00007fffdd4c107a: callq 0x7fffdd6632e0
End of assembler dump.
Author: | erg |
Mode: | factor |
Date: | Wed, 25 Jul 2012 22:47:39 |
Plain Text |
addr = 0x7fffdd40844e
fixed_addr = 0x7fffdd40844e
addr = 0x7fffdd40844e
natural_frame_size = 16
entry_point() = 0x7fffdd408420
frame_size = 16
addr = 0x7fffdd4c107f
fixed_addr = 0x7fffdd4c107f
addr = 0x7fffdd4c107f
natural_frame_size = 0
entry_point() = 0x7fffdd4c04a0
frame_size = 16
addr = 0xc191f0
fixed_addr = 0xc191f0
failing at address = 0xc191f0
Starting low level debugger...
Author: | erg |
Mode: | factor |
Date: | Wed, 25 Jul 2012 22:50:26 |
Plain Text |
erg@ommegang ~/factor/vm $ [master*] git diff
diff --git a/vm/callstack.hpp b/vm/callstack.hpp
index f4fbac2..ac514fb 100755
--- a/vm/callstack.hpp
+++ b/vm/callstack.hpp
@@ -47,6 +47,7 @@ inline void factor_vm::iterate_callstack(context *ctx, Iterator &iterator, Fixup
char *frame_top = (char*)ctx->callstack_top;
+ printf("iterating\n");
while (frame_top < (char*)ctx->callstack_bottom)
{
void *addr = frame_return_address((void*)frame_top);
@@ -54,13 +55,17 @@ inline void factor_vm::iterate_callstack(context *ctx, Iterator &iterator, Fixup
void *fixed_addr = Fixup::translated_code_block_map
? (void*)fixup.translate_code((code_block*)addr)
: addr;
+ printf("addr = %p\n", addr);
+ printf("fixed_addr = %p\n", fixed_addr);
code_block *owner = code->code_block_for_address((cell)fixed_addr);
code_block *fixed_owner = Fixup::translated_code_block_map
? owner
: fixup.translate_code(owner);
+ // This fails
cell frame_size = fixed_owner->stack_frame_size_for_address((cell)fixed_addr);
+ printf("frame_size = %ld\n", frame_size);
void *fixed_addr_for_iter = Fixup::translated_code_block_map
? fixed_addr
@@ -69,6 +74,7 @@ inline void factor_vm::iterate_callstack(context *ctx, Iterator &iterator, Fixup
iterator(frame_top, frame_size, owner, fixed_addr_for_iter);
frame_top += frame_size;
}
+ printf("done iterating\n\n");
}
template<typename Iterator>
diff --git a/vm/code_blocks.hpp b/vm/code_blocks.hpp
index 4f67a19..d0a602f 100644
--- a/vm/code_blocks.hpp
+++ b/vm/code_blocks.hpp
@@ -61,9 +61,13 @@ struct code_block
return (header >> 20) & 0xFF0;
}
+ // This fails!
cell stack_frame_size_for_address(cell addr) const
{
cell natural_frame_size = stack_frame_size();
+ printf("addr = %p\n", addr);
+ printf("natural_frame_size = %ld\n", natural_frame_size);
+ printf("entry_point() = %p\n", entry_point());
/* The first instruction in a code block is the prolog safepoint,
and a leaf procedure code block will record a frame size of zero.
If we're seeing a stack frame in either of these cases, it's a
diff --git a/vm/code_heap.cpp b/vm/code_heap.cpp
index ad3680b..560d618 100755
--- a/vm/code_heap.cpp
+++ b/vm/code_heap.cpp
@@ -118,6 +118,11 @@ code_block *code_heap::code_block_for_address(cell address)
{
std::set<cell>::const_iterator blocki =
all_blocks.upper_bound(address);
+ if(blocki == all_blocks.begin()) {
+ printf("failing at address = %p\n", address);
+ current_vm()->factorbug();
+ //current_vm()->print_callstack();
+ }
FACTOR_ASSERT(blocki != all_blocks.begin());
--blocki;
code_block* found_block = (code_block*)*blocki;
diff --git a/vm/inline_cache.cpp b/vm/inline_cache.cpp
index 30e568a..20edc5a 100755
--- a/vm/inline_cache.cpp
+++ b/vm/inline_cache.cpp
@@ -17,8 +17,10 @@ void factor_vm::deallocate_inline_cache(cell return_address)
code_block *old_block = (code_block *)old_entry_point - 1;
/* Free the old PIC since we know its unreachable */
- if(old_block->pic_p())
+ if(old_block->pic_p()) {
+ printf("freeing old_block = %p\n", old_block);
code->free(old_block);
+ }
}
/* Figure out what kind of type check the PIC needs based on the methods
Author: | erg |
Mode: | factor |
Date: | Wed, 25 Jul 2012 22:51:27 |
Plain Text |
iterating
addr = 0x7fffdd40844e
fixed_addr = 0x7fffdd40844e
addr = 0x7fffdd40844e
natural_frame_size = 16
entry_point() = 0x7fffdd408420
frame_size = 16
addr = 0x7fffdd4c107f
fixed_addr = 0x7fffdd4c107f
addr = 0x7fffdd4c107f
natural_frame_size = 0
entry_point() = 0x7fffdd4c04a0
frame_size = 16
addr = 0xc191f0
fixed_addr = 0xc191f0
failing at address = 0xc191f0
Starting low level debugger...
Basic commands:
q ^D -- quit Factor
c -- continue executing Factor - NOT SAFE
t -- throw exception in Factor - NOT SAFE
.s .r .c -- print data, retain, call stacks
help -- full help, including advanced commands
>
New Annotation