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

Thank you, Nikolaus. Your disassembly proves that our guess was correct.


Pavel

On Fri, May 14, 2010 at 9:45 AM, Nikolaus Rath <nikol...@rath.org> wrote:
> 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
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to