strace 中的这个条目是什么意思?

strace 中的这个条目是什么意思?

我已经问过这个问题了在 Reddit 上,但遗憾的是没有收到任何回复。

我有以下外壳输出:

[OP@~]$ strace okular file.pdf
/* snipped */
write(13, "\1\0\0\0\0\0\0\0", 8)        = 8
futex(0x5576a0f79370, FUTEX_WAIT_PRIVATE, 0, NULLSettings::instance called after the first use - ignoring
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/8x8/legacy/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/16x16/legacy/"
Invalid Context= "UI" line for icon theme:  "/usr/share/icons/Adwaita/16x16/ui/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/22x22/legacy/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/24x24/legacy/"
Invalid Context= "UI" line for icon theme:  "/usr/share/icons/Adwaita/24x24/ui/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/32x32/legacy/"
Invalid Context= "UI" line for icon theme:  "/usr/share/icons/Adwaita/32x32/ui/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/48x48/legacy/"
Invalid Context= "UI" line for icon theme:  "/usr/share/icons/Adwaita/48x48/ui/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/256x256/legacy/"
Invalid Context= "Legacy" line for icon theme:  "/usr/share/icons/Adwaita/512x512/legacy/"
Invalid Context= "UI" line for icon theme:  "/usr/share/icons/Adwaita/scalable/ui/"
org.kde.kcoreaddons: Expected JSON property "X-Purpose-PluginTypes" to be a single string. but it is a stringlist
discarding "Send SMS via KDE Connect..." "ShareUrl"
) = 0
futex(0x5576a0f79320, FUTEX_WAKE_PRIVATE, 1) = 0
/* snipped */

我如何解释中间的调用futex?也就是说,有几件事我不明白:

  • 第四个参数是怎么回事?根据futex(2)手册中的说法,原型是

      int futex(int *uaddr, int futex_op, int val,
                 const struct timespec *timeout,   /* or: uint32_t val2 */
                 int *uaddr2, int val3);
    

    但是,我不明白它的类型是 *timespec。

  • 在我的手册版本中,没有描述futex_op FUTEX_WAIT_PRIVATE。

我正在运行 Arch Linux,strace版本 5.0。

编辑:对于上下文,发生的事情基本上是问题。我正在查看系统跟踪希望获得一些信息。我这样做的原因是由于某种原因,错误消息显示在我的终端上,尽管没有写入 stdout 或 stderr。但为了理解为什么,我想我需要理解这个futex系统调用。

相关内容