gdb:始终在uuu kernel_vsyscall()中的0xFFFFFF410处停止

gdb:始终在uuu kernel_vsyscall()中的0xFFFFFF410处停止,c,gdb,C,Gdb,我使用gdb连接一个正在运行的进程,但是,它总是在\uuu kernel\u vsyscall处停止。它似乎在我的系统调用msgrcv()时停止。我必须不断地“控制”它,不知道它什么时候能跳出内核回到应用程序。我怎样才能让它继续下去?以下是我的程序 我怎么会遇到这种情况的 如何让它继续下去 谢谢 gdb (gdb) attach PID ... Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...don

我使用gdb连接一个正在运行的进程,但是,它总是在
\uuu kernel\u vsyscall
处停止。它似乎在我的系统调用msgrcv()时停止。我必须不断地“控制”它,不知道它什么时候能跳出内核回到应用程序。我怎样才能让它继续下去?以下是我的程序

  • 我怎么会遇到这种情况的
  • 如何让它继续下去
  • 谢谢

    gdb
    (gdb) attach PID
    ...
    Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib/ld-linux.so.2
    0xffffe410 in __kernel_vsyscall ()
    
    (gdb)bt
    
    #0  0xffffe410 in __kernel_vsyscall ()
    #1  0x009ed573 in msgrcv () from /lib/libc.so.6
    #2  0xf7f3a487 in _UX_wgetmsg (mode=0, msgp=0xffbb4178, pmaxtime=0xffbb4164, 
        pdata=0xf7f7a860, ux_type=0) at ../../../ux/com_ux/libux/com/UXipc.c:2550
    #3  0xf7f3ad05 in UX_wgetmsg_v2 (mode=0, msgp=0xffbb4178, maxtime=10000, 
        ux_type=0) at ../../../ux/com_ux/libux/com/UXipc.c:2237
    #4  0x0804bb9b in main (argc=1, argv=0xffbb5394)
        at /path/to/my_application:243
    
    我怎么会遇到这种情况的

    当您连接到在系统调用中被阻止的进程(等待消息或读取完成)时,这种情况是完全正常的

    如何让它继续下去


    您键入
    continue
    (此时应用程序将再次阻塞,等待消息)。如果要调试应用程序的某些部分,请在继续之前设置断点。

    应用程序似乎正在等待消息,在收到消息之前不会返回运行。