Pavel Ivanov <paiva...@gmail.com> writes:
>>> Yeah, I'm around. I don't know what an "exact disassembly" is or how to
>>> provide one, but if someone tells me what to do then I'm most likely
>>> willing to do it.
>
> Nikolaus, you can do it like this:
>> gdb your_application
> (gdb) disassemble pthreadMutexEnter
>
> I made that for my application and see this:
>
> Dump of assembler code for function pthreadMutexEnter:
> 0x00000000005d60c0 <pthreadMutexEnter+0>:       push   %rbx
> 0x00000000005d60c1 <pthreadMutexEnter+1>:       mov    %rdi,%rbx
> 0x00000000005d60c4 <pthreadMutexEnter+4>:       callq  0x472750
> <pthread_mutex_l...@plt>
> 0x00000000005d60c9 <pthreadMutexEnter+9>:       callq  0x471dc0
> <pthread_s...@plt>
> 0x00000000005d60ce <pthreadMutexEnter+14>:      incl   0x2c(%rbx)
> 0x00000000005d60d1 <pthreadMutexEnter+17>:      mov    %rax,0x30(%rbx)
> 0x00000000005d60d5 <pthreadMutexEnter+21>:      pop    %rbx
> 0x00000000005d60d6 <pthreadMutexEnter+22>:      retq
> End of assembler dump.

Not sure if it's still important, but this is how it looks for me:

(gdb) disassemble pthreadMutexEnter
Dump of assembler code for function pthreadMutexEnter:
   0x002f3090 <+0>:     push   %ebp
   0x002f3091 <+1>:     mov    %esp,%ebp
   0x002f3093 <+3>:     push   %esi
   0x002f3094 <+4>:     push   %ebx
   0x002f3095 <+5>:     sub    $0x20,%esp
   0x002f3098 <+8>:     mov    0x8(%ebp),%esi
   0x002f309b <+11>:    call   0x2dbd67 <__i686.get_pc_thunk.bx>
   0x002f30a0 <+16>:    add    $0xb9f54,%ebx
   0x002f30a6 <+22>:    cmpl   $0x1,0x18(%esi)
   0x002f30aa <+26>:    je     0x2f30b8 <pthreadMutexEnter+40>
   0x002f30ac <+28>:    mov    %esi,(%esp)
   0x002f30af <+31>:    call   0x2f2e10 <pthreadMutexNotheld>
   0x002f30b4 <+36>:    test   %eax,%eax
   0x002f30b6 <+38>:    je     0x2f3101 <pthreadMutexEnter+113>
   0x002f30b8 <+40>:    mov    %esi,(%esp)
   0x002f30bb <+43>:    call   0x2db980 <pthread_mutex_l...@plt>
   0x002f30c0 <+48>:    call   0x2dbc60 <pthread_s...@plt>
   0x002f30c5 <+53>:    mov    0x1c(%esi),%edx
   0x002f30c8 <+56>:    add    $0x1,%edx
   0x002f30cb <+59>:    mov    %edx,0x1c(%esi)
   0x002f30ce <+62>:    mov    %eax,0x20(%esi)
   0x002f30d1 <+65>:    mov    0x24(%esi),%eax
   0x002f30d4 <+68>:    test   %eax,%eax
   0x002f30d6 <+70>:    je     0x2f30fa <pthreadMutexEnter+106>
   0x002f30d8 <+72>:    mov    %eax,0xc(%esp)
   0x002f30dc <+76>:    lea    -0x23258(%ebx),%eax
   0x002f30e2 <+82>:    mov    %edx,0x10(%esp)
   0x002f30e6 <+86>:    mov    %esi,0x8(%esp)
   0x002f30ea <+90>:    mov    %eax,0x4(%esp)
   0x002f30ee <+94>:    movl   $0x1,(%esp)
   0x002f30f5 <+101>:   call   0x2db410 <__printf_...@plt>
   0x002f30fa <+106>:   add    $0x20,%esp
   0x002f30fd <+109>:   pop    %ebx
   0x002f30fe <+110>:   pop    %esi
   0x002f30ff <+111>:   pop    %ebp
   0x002f3100 <+112>:   ret    
   0x002f3101 <+113>:   lea    -0x2b207(%ebx),%eax
   0x002f3107 <+119>:   mov    %eax,0xc(%esp)
   0x002f310b <+123>:   lea    -0x24b18(%ebx),%eax
   0x002f3111 <+129>:   mov    %eax,0x4(%esp)
   0x002f3115 <+133>:   lea    -0x2327c(%ebx),%eax
   0x002f311b <+139>:   movl   $0x3d0f,0x8(%esp)
   0x002f3123 <+147>:   mov    %eax,(%esp)
   0x002f3126 <+150>:   call   0x2db530 <__assert_f...@plt>
End of assembler dump.


   -Nikolaus

-- 
 »Time flies like an arrow, fruit flies like a Banana.«

  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to