1. QNX Momentics IDE 调试环境搭建与首个断点

QNX Momentics IDE 调试环境搭建与首个断点 学习卡片

任务目标

在QNX Neutrino实时操作系统中,使用pidin命令查看当前系统运行的进程列表,并理解输出中进程ID(PID)、进程名、所属用户、内存占用等关键字段的含义。本案例以QNX虚拟机或真实硬件终端环境为背景,通过实际执行pidin命令并解读输出,掌握该工具的基本用法。

环境准备

本案例需要一台运行QNX Neutrino 7.0或更高版本的目标设备(或QNX虚拟机),并已获得shell访问权限。无需额外安装软件,pidin是QNX系统自带的系统信息查看工具,位于/bin目录下。

核心命令与输出解读

pidin命令不带参数时,默认显示系统中所有进程的概要信息。其输出格式如下:

pidin
       PID  NAME           OWNER  CPU  TIME  PRI  STATE
         1  /proc/boot/procnto-smp-instr  root   0   0:00  10  RUN
         2  /proc/boot/startup  root   0   0:00  10  RUN
       ...  ...            ...    ...  ...   ...  ...

各列含义:

  • PID:进程标识符,唯一标识一个进程。
  • NAME:进程的可执行文件完整路径。
  • OWNER:运行该进程的用户名。
  • CPU:进程最近一次运行所在的CPU编号(多核系统中有意义)。
  • TIME:进程累计消耗的CPU时间(格式为分钟:秒)。
  • PRI:进程当前的调度优先级。
  • STATE:进程当前状态,如RUN(运行中)、READY(就绪)、WAIT(等待)、ZOMB(僵尸)等。

常用选项

选项功能说明示例
-p <pid>仅显示指定PID的进程信息pidin -p 1
-n <name>按进程名匹配过滤(支持通配符)pidin -n *sh
-f <字段>自定义输出字段,如pid,name,statepidin -f pid,name,state
-F显示完整命令行参数(而非仅可执行路径)pidin -F
-m显示内存映射信息(含每个进程的内存占用详情)pidin -m

验证方法

在QNX shell中依次执行以下命令,并观察输出:

# 1. 查看完整进程列表
pidin

# 2. 查看指定进程(以PID 1为例)
pidin -p 1

# 3. 按名称过滤(例如查找所有shell进程)
pidin -n *sh

# 4. 自定义输出字段
pidin -f pid,name,pri,state

# 5. 查看进程完整命令行
pidin -F | head -20

通过条件:

  • 执行pidin后能看到多行进程记录,每行包含PID、NAME、OWNER等列,且PID 1对应的procnto进程存在。
  • pidin -p 1仅输出一行,且PID列值为1。
  • pidin -n *sh的输出中,NAME列均以sh结尾。
  • pidin -f pid,name,pri,state的输出仅包含指定的四列。
  • pidin -F输出的命令行参数比默认输出更完整(例如包含-c等启动参数)。

若以上命令均能正确执行且输出格式符合预期,则判定本案例验证通过。

常见问题

  • 输出列错位或显示不全:终端宽度不足时,可尝试pidin | more分页查看,或使用-f减少输出列。
  • 权限不足:查看其他用户进程的详细信息(如内存映射)可能需要root权限,普通用户执行pidin -m时部分字段可能显示为?。
  • 进程名匹配不生效:-n选项匹配的是可执行文件路径的完整字符串,使用通配符时需确保shell未先行展开,必要时加引号:pidin -n '*sh'。