This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: How can I explain for this? what is __kernel_vsyscall () ?
2012/7/11 Tom Frank <gdbhelper@gmail.com>:
> I debug a multithreads programme with gdb,as it runs I use the
> 'info threads' command, and find that most of the threads running at
> __kernel_vsyscall () function
>
> as below:
>
> 6 Thread 0xb61e4b90 (LWP 322) 0x008e7402 in __kernel_vsyscall ()
> 5 Thread 0xb6be5b90 (LWP 320) 0x008e7402 in __kernel_vsyscall ()
> 4 Thread 0xb7fe7b90 (LWP 318) 0x008e7402 in __kernel_vsyscall ()
> 3 Thread 0xb75e6b90 (LWP 316) 0x008e7402 in __kernel_vsyscall ()
> * 1 Thread 0xb7fe86d0 (LWP 312) 0x0074c2b8 in clone () from
> /lib/i686/nosegneg/libc.so.6
>
>
>
> what is __kernel_vsyscall (), why most threads's frame is in that step ?
__kernel_vsyscall() is Linux' system call entry point and the threads
you are looking at seem to be blocking in such a syscall. To find out
which it is, you might want to have a look at their EAX register
(assuming you're on x86).
Bjoern