GNU gdb 5.0 Copyright 2000 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 "i386-redhat-linux"... (no debugging symbols found)... (gdb) disassemble shrink_cah che Dump of assembler code for function shrink_cache: 0xc0129280 : push %ebp 0xc0129281 : push %edi 0xc0129282 : mov %eax,%edi 0xc0129284 : push %esi 0xc0129285 : push %ebx 0xc0129286 : mov %edi,%ebx 0xc0129288 : sub $0x24,%esp 0xc012928b : mov %edx,0x10(%esp,1) 0xc012928f : mov 0xc02b6058,%edx 0xc0129295 : mov %edx,%eax 0xc0129297 : sar $0x1f,%edx 0xc012929a : idiv 0x38(%esp,1),%eax 0xc012929e : mov 0x38(%esp,1),%edx 0xc01292a2 : mov %eax,%ebp 0xc01292a4 : mov $0xa,%eax 0xc01292a9 : mov %ecx,0xc(%esp,1) 0xc01292ad : sub %edx,%eax 0xc01292af : mov $0x66666667,%edx 0xc01292b4 : mov %al,%cl 0xc01292b6 : mov %edx,%eax 0xc01292b8 : imul %ebp,%eax 0xc01292ba : sar $0x2,%edx 0xc01292bd : mov %ebp,%eax 0xc01292bf : sar $0x1f,%eax 0xc01292c2 : shl %cl,%ebx 0xc01292c4 : sub %eax,%edx 0xc01292c6 : cmp %ebx,%edx 0xc01292c8 : jle 0xc01292cc 0xc01292ca : mov %ebx,%edx 0xc01292cc : dec %ebp 0xc01292cd : mov %edx,0x8(%esp,1) 0xc01292d1 : js 0xc0129583 0xc01292d7 : mov 0xc02613fc,%ecx 0xc01292dd : cmp $0xc02613f8,%ecx 0xc01292e3 : je 0xc0129583 0xc01292e9 : mov $0xffffe000,%edx 0xc01292ee : and %esp,%edx 0xc01292f0 : movl $0xffffe000,0x4(%esp,1) 0xc01292f8 : mov %edx,0x4(%esp,1) 0xc01292fc : lea 0x0(%esi,1),%esi 0xc0129300 : mov 0x4(%esp,1),%edx 0xc0129304 : mov 0x14(%edx),%eax 0xc0129307 : test %eax,%eax 0xc0129309 : je 0xc0129320 0xc012930b : movl $0x0,(%edx) 0xc0129311 : call 0xc0110840 0xc0129316 : jmp 0xc012956e 0xc012931b : nop 0xc012931c : lea 0x0(%esi,1),%esi 0xc0129320 : lea 0xffffffe4(%ecx),%esi 0xc0129323 : mov 0xfffffffc(%ecx),%eax 0xc0129326 : xor $0x40,%eax 0xc0129329 : and $0x40,%eax 0xc012932c : je 0xc0129336 0xc012932e : ud2a 0xc0129330 : add %di,0x22(%esp,%ebx,4) 0xc0129335 : rorb $0x0,0x80a9fc41(%ebx) 0xc012933c : add %al,(%eax) 0xc012933e : je 0xc0129348 0xc0129340 : ud2a 0xc0129342 : addr16 add %edi,-100(%si) 0xc0129346 : and %al,%al 0xc0129348 : mov (%ecx),%eax 0xc012934a : mov 0x4(%ecx),%edx 0xc012934d : xor %ebx,%ebx 0xc012934f : mov %edx,0x4(%eax) 0xc0129352 : mov %eax,(%edx) 0xc0129354 : movl $0x0,(%ecx) 0xc012935a : movl $0x0,0x4(%ecx) 0xc0129361 : mov 0xc02613f8,%eax 0xc0129366 : mov %ecx,0x4(%eax) 0xc0129369 : mov %eax,(%ecx) 0xc012936b : movl $0xc02613f8,0x4(%ecx) 0xc0129372 : mov %ecx,0xc02613f8 0xc0129378 : mov 0xfffffff8(%ecx),%eax 0xc012937b : test %eax,%eax 0xc012937d : sete %bl 0xc0129380 : test %ebx,%ebx 0xc0129382 : jne 0xc012956e 0xc0129388 : xor %eax,%eax 0xc012938a : mov 0xffffffff(%ecx),%al 0xc012938d : mov 0xc02b605c(,%eax,4),%edx 0xc0129394 : mov 0x10(%esp,1),%eax 0xc0129398 : mov 0x98(%eax),%eax 0xc012939e : cmp %eax,0x98(%edx) 0xc01293a4 : jne 0xc012956e 0xc01293aa : cmp 0x10(%esp,1),%edx 0xc01293ae : ja 0xc012956e 0xc01293b4 : mov 0x28(%esi),%eax 0xc01293b7 : test %eax,%eax 0xc01293b9 : jne 0xc01293d2 0xc01293bb : mov 0xfffffff8(%ecx),%eax 0xc01293be : cmp $0x1,%eax 0xc01293c1 : jne 0xc0129503 0xc01293c7 : mov 0xffffffec(%ecx),%edx 0xc01293ca : test %edx,%edx 0xc01293cc : je 0xc0129503 0xc01293d2 : bts %ebx,0xfffffffc(%ecx) 0xc01293d6 : sbb %eax,%eax 0xc01293d8 : test %eax,%eax 0xc01293da : je 0xc0129413 0xc01293dc : mov 0xfffffffc(%ecx),%eax 0xc01293df : test $0x8000,%eax 0xc01293e4 : je 0xc012956e 0xc01293ea : testl $0x100,0xc(%esp,1) 0xc01293f2 : je 0xc012956e 0xc01293f8 : incl 0xfffffff8(%ecx) 0xc01293fb : mov 0xfffffffc(%ecx),%eax 0xc01293fe : and $0x1,%eax 0xc0129401 : je 0xc01294c7 0xc0129407 : push %esi 0xc0129408 : call 0xc0122f10 <___wait_on_page> 0xc012940d : pop %eax 0xc012940e : jmp 0xc01294c7 0xc0129413 : mov 0xfffffffc(%ecx),%eax 0xc0129416 : and $0x10,%eax 0xc0129419 : je 0xc0129480 0xc012941b : mov 0xfffffff8(%ecx),%edx 0xc012941e : mov 0x28(%esi),%ecx 0xc0129421 : test %ecx,%ecx 0xc0129423 : je 0xc0129430 0xc0129425 : xor %eax,%eax 0xc0129427 : cmp $0x2,%edx 0xc012942a : jmp 0xc0129435 0xc012942c : lea 0x0(%esi,1),%esi 0xc0129430 : xor %eax,%eax 0xc0129432 : cmp $0x1,%edx 0xc0129435 : sete %al 0xc0129438 : test %eax,%eax 0xc012943a : je 0xc0129483 0xc012943c : mov 0x8(%esi),%eax 0xc012943f : test %eax,%eax 0xc0129441 : je 0xc0129483 0xc0129443 : mov 0x1c(%eax),%eax 0xc0129446 : testl $0x100,0xc(%esp,1) 0xc012944e : mov (%eax),%edx 0xc0129450 : je 0xc0129483 0xc0129452 : test %edx,%edx 0xc0129454 : je 0xc0129483 0xc0129456 : mov $0x4,%eax 0xc012945b : btr %eax,0x18(%esi) 0xc012945f : mov $0xf,%eax 0xc0129464 : bts %eax,0x18(%esi) 0xc0129468 : incl 0x14(%esi) 0xc012946b : push %esi 0xc012946c : call *%edx 0xc012946e : mov %esi,%eax 0xc0129470 : xor %edx,%edx 0xc0129472 : call 0xc012a650 <__free_pages> 0xc0129477 : pop %esi 0xc0129478 : jmp 0xc012956e 0xc012947d : lea 0x0(%esi),%esi 0xc0129480 : mov 0x28(%esi),%ecx 0xc0129483 : test %ecx,%ecx 0xc0129485 : je 0xc01294d5 0xc0129487 : incl 0x14(%esi) 0xc012948a : mov 0xc(%esp,1),%ebx 0xc012948e : push %ebx 0xc012948f : push %esi 0xc0129490 : call 0xc0131ff0 0xc0129495 : pop %edx 0xc0129496 : test %eax,%eax 0xc0129498 : pop %ecx 0xc0129499 : je 0xc01294c0 0xc012949b : mov 0x8(%esi),%eax 0xc012949e : test %eax,%eax 0xc01294a0 : jne 0xc01294b5 0xc01294a2 : mov %esi,%eax 0xc01294a4 : call 0xc0122fd0 0xc01294a9 : mov %esi,%eax 0xc01294ab : call 0xc0128d30 <__lru_cache_del> 0xc01294b0 : jmp 0xc0129562 0xc01294b5 : xor %edx,%edx 0xc01294b7 : mov %esi,%eax 0xc01294b9 : call 0xc012a650 <__free_pages> 0xc01294be : jmp 0xc01294d5 0xc01294c0 : mov %esi,%eax 0xc01294c2 : call 0xc0122fd0 0xc01294c7 : xor %edx,%edx 0xc01294c9 : mov %esi,%eax 0xc01294cb : call 0xc012a650 <__free_pages> 0xc01294d0 : jmp 0xc012956e 0xc01294d5 : mov 0x8(%esi),%ecx 0xc01294d8 : test %ecx,%ecx 0xc01294da : je 0xc01294fc 0xc01294dc : mov 0x28(%esi),%ebx 0xc01294df : mov 0x14(%esi),%edx 0xc01294e2 : test %ebx,%ebx 0xc01294e4 : je 0xc01294f0 0xc01294e6 : xor %eax,%eax 0xc01294e8 : cmp $0x2,%edx 0xc01294eb : jmp 0xc01294f5 0xc01294ed : lea 0x0(%esi),%esi 0xc01294f0 : xor %eax,%eax 0xc01294f2 : cmp $0x1,%edx 0xc01294f5 : sete %al 0xc01294f8 : test %eax,%eax 0xc01294fa : jne 0xc0129520 0xc01294fc : mov %esi,%eax 0xc01294fe : call 0xc0122fd0 0xc0129503 : decl 0x8(%esp,1) 0xc0129507 : jns 0xc012956e 0xc0129509 : mov 0x10(%esp,1),%ecx 0xc012950d : mov 0xc(%esp,1),%edx 0xc0129511 : mov 0x38(%esp,1),%eax 0xc0129515 : call 0xc0128dc0 0xc012951a : jmp 0xc0129583 0xc012951c : lea 0x0(%esi,1),%esi 0xc0129520 : mov 0x18(%esi),%eax 0xc0129523 : and $0x10,%eax 0xc0129526 : je 0xc0129531 0xc0129528 : mov %esi,%eax 0xc012952a : call 0xc0122fd0 0xc012952f : jmp 0xc012956e 0xc0129531 : cmp $0xc0261460,%ecx 0xc0129537 : je 0xc0129542 0xc0129539 : push %esi 0xc012953a : call 0xc0122460 <__remove_inode_page> 0xc012953f : pop %ecx 0xc0129540 : jmp 0xc0129554 0xc0129542 : mov 0xc(%esi),%ebx 0xc0129545 : push %esi 0xc0129546 : call 0xc012a9f0 <__delete_from_swap_cache> 0xc012954b : mov %ebx,(%esp,1) 0xc012954e : call 0xc012af10 0xc0129553 : pop %edx 0xc0129554 : mov %esi,%eax 0xc0129556 : call 0xc0128d30 <__lru_cache_del> 0xc012955b : mov %esi,%eax 0xc012955d : call 0xc0122fd0 0xc0129562 : xor %edx,%edx 0xc0129564 : mov %esi,%eax 0xc0129566 : call 0xc012a650 <__free_pages> 0xc012956b : dec %edi 0xc012956c : je 0xc0129583 0xc012956e : dec %ebp 0xc012956f : js 0xc0129583 0xc0129571 : mov 0xc02613fc,%ecx 0xc0129577 : cmp $0xc02613f8,%ecx 0xc012957d : jne 0xc0129300 0xc0129583 : mov %edi,%eax 0xc0129585 : add $0x24,%esp 0xc0129588 : pop %ebx 0xc0129589 : pop %esi 0xc012958a : pop %edi 0xc012958b : pop %ebp 0xc012958c : ret 0xc012958d : lea 0x0(%esi),%esi End of assembler dump. (gdb) q