139、【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(五)
【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除
背景
之前 blog
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(一)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(二)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(三)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(四)
分析了下 strace
的追踪日志以及里面 open 命令和 openat 命令的区别,还有里面涉及的相关宏定义,以及 D-Bus 与 GNOME 的概念,并分析了 dbus-send 命令与 D-Bus 的关系,还分析了日志中不是 GNOME 和 XFCE 的描述,下面继续来看下
strace 日志解析
上篇 blog 提到了 XFCE,XFCE 全称 X Forms Computing Environment,是一个轻量级的 Unix 桌面环境,XFCE 和 GNOME 都是 Linux 上流行的桌面环境
- 对 GNOME 来说,桌面布局现代,简洁,美观,适合新手和触控设备,但可定制性较低
- 而 XFCE 桌面属于轻量,快速,高度可定制的系统,适合老电脑或喜欢 DIY 的老用户
另外,上篇 blog 第 22 行这里涉及到了 xprop
命令,这里的场景用来检测当前是否属于 XFCE 桌面环境
可以看到,日志上 xdg-open
命令执行的整体思路是先判断当前的桌面环境的,识别桌面环境后,用默认程序打开 URL,然后用 dbus-send
命令先判断当前是不是 GNOME 系统,得到否定结果后,再用 xprop
命令判断当前是不是 XFCE 系统
终端输入
man xprop
查看下 xprop
命令的说明
可以看到,xprop
命令是用来显示 X Window 系统中窗口或字体的属性的工具,注意,这里的 X Window 和 XFCE 是两个概念
X Window 是 Unix/Linux 图形界面的基石,负责显示窗口,处理鼠标,键盘输入等,所有桌面环境(包括 GNOME 和 XFCE)都运行在 X 之上,可以把 X Window 理解成图形系统的操作系统内核
可以这么理解,xprop
命令是一个查看窗口信息的命令行工具
另外,注意下这里的 SUMMARY 信息,这里也总结了一些比较有用的点
xprop
命令可以查看 X Window 服务器中窗口或字体的属性- 可以通过命令行参数(比如 -id、-name 等)指定要查看的窗口,或者直接点击想查看的窗口(比如 -spy 选项),然后
xprop
命令就会列出选中窗口的所有属性
下面来分析下 xprop
命令的一些常用选项
-id
选项允许用户在命令行上直接指定窗口 ID,而不是通过鼠标指针去点击选择目标窗口- 在调试 X Window 应用程序时这个选项非常有用,特别是当目标窗口没有显示在屏幕上,比如被最小化,隐藏或程序崩溃导致窗口异常,或者使用鼠标指针操作会干扰应用程序运行的这种场景中
总结一下,xprop -id
可以让用户很方便去调试或处理一些不可见或无法交互的窗口
另一个常用的选项是 -name
除了指定窗口 id,也可以直接指定窗口名字来显示窗口的属性信息,窗口名字相对来说比较符合人类阅读习惯,但是可能存在命名冲突,上面的窗口 id 选项是绝对唯一的,不会出现命名冲突
ok,先到这里,下篇 blog 继续