snapshot-checker 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,192 +1,159 @@
1
1
  # snapshot-checker
2
2
 
3
- 面向 **Harmony/OpenHarmony 设备联调** 的采集与分析 CLI:通过 `hdc` 在设备上配置 trace 权限、后台拉取日志、并行执行 `hitrace` / `hiperf` 采样,并在本机对 perf 文本做解析、去重与调用栈输出。仓库内两条主场景为 **`forkall`**(可按需走「改机后重启」流程)与 **`report`**(多类风险目标、可选 hstack 与 sourcemap 解析)。
3
+ 面向 **Harmony/OpenHarmony 设备联调** 的采集与分析 CLI:通过 `hdc` 清理环境、拉取日志、并行执行 `hitrace` / `hiperf` 采样,并在本机解码 perf、去重与导出调用栈。
4
4
 
5
- **前置条件**
5
+ **主场景为 `report`**:按 checkpoint 风险目标采集 trace/perf,可选 hstack 与 sourcemap 解析,输出 `dump_stack.*`。
6
6
 
7
- - **Node.js** ≥ 18(见 `package.json` 的 `engines`)。
8
- - 使用 `forkall` / `report` 时需在 PATH 中可用 **`hdc`**,并已连接目标设备;示例中的 Windows 风格路径(如 `.\output`)可按本机环境改为相对或绝对路径。
7
+ **前置条件**
9
8
 
10
- **解析依赖**:本机分析阶段使用 `hiperf_txt_parser`、`hmtrace-parser`(见 `package.json` `dependencies`)。
9
+ - **Node.js** 18。
10
+ - PATH 中可用 **`hdc`**,并已连接目标设备。
11
+ - 本机 analysis 依赖 `hiperf_txt_parser`、`hmtrace-parser`(随包安装)。
11
12
 
12
13
  ---
13
14
 
14
- ## `forkall` 场景
15
-
16
- 针对**单一自定义 trace 事件路径**(`--event-path`)做监控或「改配置后重启再采」模式。命令由 `applyOptions` 根据 CLI 注入,实际流水线见 `commands/forkall.ts` 与 `src/lib/presets.ts`。
15
+ ## 安装
17
16
 
18
- **典型阶段(`defaultGroupOrder` 由 `--mode` 决定)**
17
+ ### 直接安装(推荐)
19
18
 
20
- - **`reboot`**(仅 `reboot-monitor`):上传 `hitrace_utils` / `hiperf`、写入事件占位、重启设备,并用内置 `timeout` 等待重启(可按键跳过)。
21
- - **`init`**:remount、清理设备与本地残留日志、停后台 hitrace、强停应用、销毁镜像、检查事件列表、配置 checkpoint 开关、为 `--event-path` 对应节点配置权限。
22
- - **`monitor`**:后台 `hilog` 追加到本地 `snapshot_log.txt`;取 `apppool` pid 注入 `monitor_target`;组合 `hitrace custom_event` + `hiperf record`(事件名为路径中 `/` 替换为 `:`)与 `--app` 触发的 launcher 脚本等。
23
- - **`collect`**:拉取 `/data/local/tmp` 下的 perf、hitrace 等到 `--output-dir`。
24
- - **`analysis`**(阶段名:**风险调用栈数据分析**):可选 Python 系统栈解栈;内置步骤按应用进程过滤 tg id、解码 perf、`dedupePerfData`,输出 `dump_stack.txt` / `dump_stack.json`。
19
+ ```bash
20
+ npm install -g snapshot-checker
21
+ snapshot-checker --help
22
+ snapshot-checker report --help
23
+ ```
25
24
 
26
- **模式**
25
+ 全局命令 **`snapshot-checker`** 即 CLI 入口。
27
26
 
28
- | `--mode` | 说明 |
29
- | ---------------- | ---- |
30
- | `monitor` | 顺序:`init` → `monitor` → `collect` → `analysis`(默认) |
31
- | `reboot-monitor` | 在首部增加 `reboot` 组,再执行同上 |
27
+ ### 本地构建
32
28
 
33
- **主要 CLI(场景专有,运行于 `snapshot-checker forkall`)**
29
+ 用于开发本仓库或联调未发布改动:
34
30
 
35
- | 选项 | 说明 |
36
- | ------ | ------ |
37
- | `--event-path <path>` | 内核 tracing 事件路径片段(脚本内会转成 `:` 分隔的 hiperf 事件名) |
38
- | `--app <app>` | 应用包名;空则跳过通过 hidumper 创建实例等步骤 |
39
- | `--system-symbol-file-path <path>` | 若提供:对导出 perf 文本做系统栈解析(Python) |
40
- | `--log-key <key>` | `hilog` 过滤关键字,默认 `pid` |
41
- | `--duration <seconds>` | 采样时长(秒),默认 `70` |
42
- | `--default-timeout <seconds>` | `reboot-monitor` 下等待设备就绪,默认 `90` |
43
- | `--buffer-size <bytes>` | hitrace/hiperf 缓冲,默认 `512000` |
44
- | `--mode <mode>` | `monitor` 或 `reboot-monitor` |
45
- | `--output-dir <path>` | 本地输出目录,默认 `.\output` |
46
- | `--trace-format-profile <name>` | trace 解码 profile,默认 `default` |
47
- | `--skip-perf-dedupe` | 解码后跳过 `dedupePerfData` |
48
-
49
- 此外还有与子命令通用的选项(见下文「次要:CLI 场景框架」中的通用标志)。
31
+ ```bash
32
+ git clone <仓库地址>
33
+ cd snapshot-checker
34
+ npm install
35
+ npm run build
36
+ npm start -- report --help # 或: node dist/src/cli.js report --help
37
+ ```
50
38
 
51
- **示例**
39
+ 开发时可跳过构建,直接用源码:
52
40
 
53
41
  ```bash
54
- npm run build
55
- npm start -- forkall --help
56
- node dist/src/cli.js forkall --mode monitor --event-path snapshot/hmb_forkall_report_image_failure --app com.example.app
42
+ npm run dev -- report --help
57
43
  ```
58
44
 
59
45
  ---
60
46
 
61
- ## `report` 场景
47
+ ## `report` 命令
62
48
 
63
- 面向 **镜像失效等风险** 的专项采集与分析:可多选内核侧风险类型,拉取 ipc / 文件访问相关 tap;分析阶段可选用 **hstack** 解析 perf 文本与 **sourcemap** 符号化,或通过内置步骤在多个候选文件中挑选可用 perf 输入再解码。
49
+ checkpoint 镜像失效等风险的专项采集与分析。按 `--risk-targets` 选择 hiperf 事件;analysis 阶段可选用 **hstack**、**sourcemap**,或通过 `--trace-from` 切换 trace 来源。
64
50
 
65
- **典型阶段**
51
+ **执行阶段**(`defaultGroupOrder`)
66
52
 
67
- - **`init`**:与 forkall 共用的初始化(权限命令按所选风险类型生成)。
68
- - **`monitor`**:多标签 `hitrace` + 多事件 `hiperf record`(由 `--risk-targets` 推导)。
69
- - **`collect`**:同 forkall。
70
- - **`analysis`**(阶段名:**镜像失效风险栈分析**):会先写回溯栈再做过滤/解码路径;配置了 hstack 时先跑外部工具再在 `_snapshot_perf.data.txt` 与原始快照间选输入。
53
+ | 阶段 | 说明 |
54
+ | ---- | ---- |
55
+ | `init` | remount、清理、checkpoint 开关等 |
56
+ | `monitor` | `hitrace` + `hiperf record`(事件由风险目标推导) |
57
+ | `collect` | 从设备拉取 perf、hitrace 到 `--output-dir` |
58
+ | `restore` | 复原 `/proc/checkpoint/revoke_switch` |
59
+ | `filter` | 按目标进程过滤 perf |
60
+ | `analysis` | 选 perf 输入、解码 trace、可选 `backtrackFS`、去重,导出 `dump_stack.txt` / `.json` / `.xlsx` |
71
61
 
72
62
  **风险目标 `--risk-targets`**
73
63
 
74
- 逗号分隔,可选:`all`、`ipc`、`file`(语义见运行时日志中的中文展示名:**文件访问** 与 **IPC 调用** 两类链路)。未知值会报错。
64
+ 逗号分隔,默认 `all`。可选:`all`、`backtrack`(失效回溯)、`direct`(直接失效)。
65
+
66
+ | key | 展示名 | hiperf 事件 |
67
+ | --- | ------ | ----------- |
68
+ | `backtrack` | 失效回溯 | `checkpoint:vfs_snapshot_dump_monitor` |
69
+ | `direct` | 直接失效 | `checkpoint:checkpoint_revoked` |
75
70
 
76
- **主要 CLI**
71
+ **主要选项**
77
72
 
78
73
  | 选项 | 说明 |
79
- | ------ | ------ |
74
+ | ---- | ---- |
80
75
  | `--app <app>` | 应用包名 |
81
- | `--hstack-tool-path <path>` | hstack 可执行文件;不配置则跳过该步并仅用原始 perf |
76
+ | `--risk-targets <targets>` | 风险事件类型,默认 `all` |
77
+ | `--trace-from <source>` | trace 来源:hitrace / hiperf / mix,默认 hitrace |
78
+ | `--hstack-tool-path <path>` | hstack 可执行文件;不配置则跳过 |
82
79
  | `--sourcemap-dir <path>` | 传给 hstack 的 `-s` |
83
- | `--log-key`、`--duration`、`--buffer-size` | forkall |
84
- | `--output-dir` | 默认 `.\output`;perf 文本子目录为 `perf_txt/` |
85
- | `--trace-format-profile` | forkall |
86
- | `--risk-targets <targets>` | 默认 `all` |
87
- | `--skip-perf-dedupe` | forkall |
80
+ | `--log-key <key>` | hilog 过滤字段,默认 `pid` |
81
+ | `--duration <seconds>` | 采集时长(秒),默认 `70` |
82
+ | `--backtrack-delay <seconds>` | monitor 后台检测延迟,默认 `80` |
83
+ | `--risk-collect-wait <seconds>` | 开始采集前等待,默认 `0` |
84
+ | `--buffer-size <bytes>` | hitrace 缓冲区,默认 `512000` |
85
+ | `--output-dir <path>` | 输出根目录,默认 `./output` |
86
+ | `--trace-format-profile <name>` | trace 解码 profile,默认 `default`;可用 `auto` 从设备 format 读取 |
87
+ | `--skip-perf-dedupe` | 跳过 `dedupePerfData` |
88
+ | `--skip-backtrack` | 跳过 `backtrackFS`(不影响采集) |
89
+ | `--skip-non-backtrack` | `backtrackFS` 使用 `keepNonFsRevoked: false` |
90
+ | `--drop-failed-samples` | 丢弃无 trace 解析器的 raw 样本 |
91
+
92
+ **全局选项**(对各子命令均生效)
93
+
94
+ | 选项 | 说明 |
95
+ | ---- | ---- |
96
+ | `--hdc-target <sn>` | 全部 `hdc` 命令加 `-t <sn>` |
97
+ | `--parse-concurrency <n>` | perf 解析并发 Worker 数,默认 `1` |
98
+ | `--log-file [path]` | 日志追加写文件;省略 path 时写入 `<output-dir>/workspace/checker.log` |
99
+
100
+ **示例**
88
101
 
89
102
  ```bash
90
- node dist/src/cli.js report --app com.example.app --risk-targets ipc,file
103
+ snapshot-checker report --app com.example.app
104
+ snapshot-checker report --app com.example.app --risk-targets backtrack,direct
105
+ snapshot-checker report --app com.example.app --trace-format-profile auto
106
+ snapshot-checker report --app com.example.app --trace-from mix --hstack-tool-path /path/to/hstack
91
107
  ```
92
108
 
93
109
  ---
94
110
 
95
- ## 安装与本地开发
96
-
97
- ```bash
98
- npm install
99
- npm run build
100
- npm start -- --help # 或: node dist/src/cli.js --help
101
- ```
111
+ ## `forkall` 命令(已过时)
102
112
 
103
- 全局或本地安装后,二进制入口为 **`snapshot-checker`**(与 `npm start` 等价,均指向 `dist/src/cli.js`)。
113
+ > **已过时**:请改用 `report`。`forkall` 仅保留兼容,后续可能移除。
104
114
 
105
- 开发时可直接用源码跑(无需先 `build`):
115
+ 针对单一 `--event-path` 做监控或「改配置后重启再采」。支持 `--mode monitor`(默认)与 `reboot-monitor`。详见 `snapshot-checker forkall --help` 或 `commands/forkall.ts`。
106
116
 
107
117
  ```bash
108
- npm run dev -- forkall --list
109
- npm run dev -- report --help
118
+ snapshot-checker forkall --event-path checkpoint/vfs_snapshot_dump_monitor --app com.example.app
110
119
  ```
111
120
 
112
- ## 测试
121
+ ---
113
122
 
114
- 使用 `node:test` + `tsx`,文件位于 `tests/*.test.ts`。
123
+ ## 测试
115
124
 
116
125
  ```bash
117
- npm test
126
+ npm test # 单元与集成
127
+ npm run test:perf # 性能回归
128
+ npm run test:all # 全部
118
129
  ```
119
130
 
120
131
  ## 作为库使用
121
132
 
122
- 安装后可通过 `resolveScenario` + `runScenarioGroups` 注入场景 CLI 等价参数:
123
-
124
133
  ```ts
125
134
  import { resolveScenario, runScenarioGroups } from "snapshot-checker";
126
- import * as forkall from "snapshot-checker/commands/forkall";
135
+ import * as report from "snapshot-checker/commands/report";
127
136
 
128
- const { groups, defaultGroupOrder } = resolveScenario(forkall, {
137
+ const { groups, defaultGroupOrder } = resolveScenario(report, {
129
138
  app: "com.example.app",
130
- eventPath: "snapshot/hmb_forkall_report_image_failure",
131
- mode: "monitor",
139
+ riskTargets: "all",
132
140
  });
133
141
 
134
142
  await runScenarioGroups({ groups, defaultGroupOrder, stopOnError: true });
135
143
  ```
136
144
 
137
- 独立示例工程:`demos/consumer-app`(内含 `README` 与子命令演示)。
145
+ 独立示例:`demos/consumer-app`(见该目录 `README.md`)。
138
146
 
139
147
  ---
140
148
 
141
- ## 次要:`snapshot-checker` CLI 场景框架与其它能力
142
-
143
- 本工具本质是 **按命名场景(`commands/*.ts`、`demos/*.ts`)注册子命令**:每个文件导出 **`groups`**、**`defaultGroupOrder`**,可选 **`options`** 与 **`applyOptions(opts)`**——在运行时根据 Commander 解析结果重写命令表(`forkall` / `report` 即用此机制)。
144
-
145
- ### 命令类型与环境
146
-
147
- 默认只执行「当前操作系统支持」的条目:Shell 可为单平台 `windows` / `mac` / `linux` 或多平台数组;另有 **`embed`**(内置 sleep、timeout 等)与 **`builtin`**(TypeScript 函数)。不指定 `-g,--group` 时按 **`defaultGroupOrder`** 遍历各组。
148
-
149
- ### `commands/` 最小场景
150
-
151
- ```ts
152
- export const groups: Groups = {
153
- env: [
154
- { kind: "shell", description: "当前目录", run: "pwd" },
155
- ],
156
- };
157
- export const defaultGroupOrder: string[] = ["env"];
158
- ```
159
-
160
- 子命令名与 `commands/`、`demos/` 下场景文件的**主文件名**(不含扩展名)一致;扫描时会**排除**主名为 `config` 的文件(`config.*`),避免与专用配置入口混淆。
161
-
162
- ### 内置 `embed`
163
-
164
- - **`sleep <seconds>`** — 休眠。
165
- - **`timeout <seconds>`** — 倒计时等待,TTY 下可按键跳过;CI 中非 TTY 时仅延时。详见 `demos/timeout-demo.ts`。
166
-
167
- ### 命令上下文(`captureToVar`)
168
-
169
- 前序命令可把 stdout/stderr(或正则捕获组)写入变量,后续在 `run` / `cwd` 等处用 **`{{变量名}}`** 展开。示例见 `demos/context-demo.ts`。
170
-
171
- ### 其它 CLI 开关(作用于各场景子命令)
172
-
173
- - **`--wait`** — 前台结束后仍等待后台命令自然退出;默认会结束后台进程后退出进程。
174
- - **`--list`** — 只列出将要执行的命令。
175
- - **`--dry-run`** — 打印序列但不执行。
176
- - **`--stop-on-error`** — 遇错中止。
177
- - **`-g,--group`** — 限定或重复某一组:`env:10,list` 等。
178
- - **`--silent`**、`--interval`**、`--ignore-platform`、`--log-level`** 等 — 见 `snapshot-checker <scene> --help`。
179
-
180
- ### `commands/` 与 `demos/` 中的场景
181
-
182
- - **`commands/`**:面向设备联调的主场景,当前为 **`forkall`**、**`report`**。
183
- - **`demos/`**:示例与教学用场景,例如 **`context-demo`**(`captureToVar` 与 `{{变量}}` 展开)、**`timeout-demo`**(`embed` 的 `timeout`)、**`mac-example`**;**`demos/consumer-app`** 为独立子包,演示以库方式调用场景(见该目录下的 `README.md`)。
149
+ ## CLI 场景框架
184
150
 
185
- 若 `commands/``demos/` 下出现**同名**场景文件,先加载者优先注册,后者跳过(控制台会给出警告)。
151
+ 本工具按命名场景(`commands/*.ts`、`demos/*.ts`)注册子命令。每个场景导出 **`groups`**、**`defaultGroupOrder`**,可选 **`options`** **`applyOptions(opts)`**。
186
152
 
187
- ### 发布与日常命令
153
+ - **`commands/`**:设备联调场景,主场景 **`report`**;**`forkall`** 已过时。
154
+ - **`demos/`**:示例场景(`context-demo`、`timeout-demo` 等)。
188
155
 
189
- 构建发布、全局/本地安装、`npm pack`、`npm link` 等与常规 Node 包相同;全局安装后:`snapshot-checker`。若远程包名不可用,可使用作用域名发布并相应调整 `package.json`。
156
+ 通用开关(各场景子命令可用):`--list`、`--dry-run`、`--stop-on-error`、`-g,--group`、`--wait`、`--silent` 等。完整列表见 `snapshot-checker <scene> --help`。
190
157
 
191
158
  ### License
192
159
 
@@ -25,6 +25,7 @@ interface ForkallOptions {
25
25
  outputDir?: string;
26
26
  traceFormatProfile?: string;
27
27
  riskTargets?: string;
28
+ traceFrom?: string;
28
29
  skipPerfDedupe?: boolean;
29
30
  skipBacktrack?: boolean;
30
31
  skipNonBacktrack?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../commands/report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAqB1E,wCAAwC;AACxC,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAOrC,CAAC;AA+CF,eAAO,MAAM,OAAO;;;;;;;;;;IAyFnB,CAAC;AAEF,UAAU,cAAc;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA2LD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CA6LlD"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../commands/report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAqB1E,wCAAwC;AACxC,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAOrC,CAAC;AAuDF,eAAO,MAAM,OAAO;;;;;;;;;;IA+FnB,CAAC;AAEF,UAAU,cAAc;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsPD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CAiMlD"}
@@ -39,6 +39,9 @@ const RISK_TARGETS_LABELLED_KEYS = Object.keys(RISK_TARGET_DEFINITIONS)
39
39
  .join("、");
40
40
  /** `--risk-targets` 选项说明(随 {@link RISK_TARGET_DEFINITIONS} 自动更新) */
41
41
  const RISK_TARGETS_CLI_DESCRIPTION = `风险事件类型,逗号分隔:${RISK_TARGETS_LABELLED_KEYS};all 为全部;默认 all`;
42
+ const TRACE_FROM_VALUES = ["hiperf", "hitrace", "mix"];
43
+ /** `--trace-from` 选项说明 */
44
+ const TRACE_FROM_CLI_DESCRIPTION = "trace 来源:hitrace、hiperf、mix";
42
45
  export const options = [
43
46
  {
44
47
  flags: "--app <app>",
@@ -97,6 +100,12 @@ export const options = [
97
100
  defaultValue: "all",
98
101
  helpGroup: "采集与输出",
99
102
  },
103
+ {
104
+ flags: "--trace-from <source>",
105
+ description: TRACE_FROM_CLI_DESCRIPTION,
106
+ defaultValue: "hitrace",
107
+ helpGroup: "采集与输出",
108
+ },
100
109
  {
101
110
  flags: "--trace-format-profile <name>",
102
111
  description: TRACE_FORMAT_PROFILE_CLI_DESCRIPTION,
@@ -148,12 +157,51 @@ function parseRiskTargets(rawValue) {
148
157
  }
149
158
  return uniqueKeys;
150
159
  }
160
+ function parseTraceFrom(rawValue) {
161
+ const normalized = (rawValue ?? "hitrace").trim().toLowerCase();
162
+ if (!TRACE_FROM_VALUES.includes(normalized)) {
163
+ throw new Error(`[--trace-from] 无效值: ${JSON.stringify(rawValue)}。可选: ${TRACE_FROM_VALUES.join("、")}`);
164
+ }
165
+ return normalized;
166
+ }
167
+ /** monitor 阶段「收集风险事件数据」shell 片段(不含 hdc shell 引号包裹) */
168
+ function buildRiskCollectShellBody(input) {
169
+ const { traceFrom, hitraceTags, bufferSize, duration, hiperfEvents, app, startAppCommand, } = input;
170
+ const useHitrace = traceFrom === "hitrace" || traceFrom === "mix";
171
+ const useHiperf = traceFrom === "hiperf" || traceFrom === "mix";
172
+ const hiperfRawData = traceFrom === "hiperf" || traceFrom === "mix" ? " --raw-data" : "";
173
+ const parts = [];
174
+ if (useHitrace) {
175
+ parts.push(`hitrace ${hitraceTags} --overwrite -b ${bufferSize} -t ${duration} -o /data/local/tmp/snapshot_hitrace.txt & `);
176
+ }
177
+ if (useHiperf) {
178
+ parts.push(`hiperf record${hiperfRawData} -e ${hiperfEvents} --period 1 -s fp --clockid boottime --callchain-useronly --cpu-limit 100 -o /data/local/tmp/perf.data -p {{monitor_target}} -d ${duration} & `);
179
+ }
180
+ parts.push("sleep 1 && ");
181
+ if (app) {
182
+ parts.push(`${startAppCommand} && `);
183
+ }
184
+ parts.push("wait");
185
+ if (useHiperf) {
186
+ parts.push(" && hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/snapshot_perf.data.txt");
187
+ }
188
+ return parts.join("");
189
+ }
151
190
  function buildMonitorGroup(input) {
152
- const { hdcCli, logKey, bufferSize, duration, backgroundDelayMs, riskCollectWaitSec, app, snapshotLogFile, startAppCommand, checkStateCommand, riskTargets, } = input;
191
+ const { hdcCli, logKey, bufferSize, duration, backgroundDelayMs, riskCollectWaitSec, app, snapshotLogFile, startAppCommand, checkStateCommand, riskTargets, traceFrom, } = input;
153
192
  const hitraceTags = [
154
193
  ...new Set(riskTargets.map((target) => target.hitraceTag)),
155
194
  ].join(" ");
156
195
  const hiperfEvents = riskTargets.map((target) => target.hiperfEvent).join(",");
196
+ const riskCollectShellBody = buildRiskCollectShellBody({
197
+ traceFrom,
198
+ hitraceTags,
199
+ bufferSize,
200
+ duration,
201
+ hiperfEvents,
202
+ app,
203
+ startAppCommand,
204
+ });
157
205
  return [
158
206
  {
159
207
  kind: SHELL_PLATFORM_KINDS,
@@ -201,17 +249,7 @@ function buildMonitorGroup(input) {
201
249
  {
202
250
  kind: SHELL_PLATFORM_KINDS,
203
251
  description: "收集风险事件数据",
204
- run: [
205
- `${hdcCli.prefix} shell "`,
206
- `hitrace ${hitraceTags} --overwrite -b ${bufferSize} -t ${duration} -o /data/local/tmp/snapshot_hitrace.txt & `,
207
- `hiperf record --raw-data -e ${hiperfEvents} --period 1 -s fp --clockid boottime --callchain-useronly --cpu-limit 100 -o /data/local/tmp/perf.data -p {{monitor_target}} -d ${duration} & `,
208
- `sleep 1 && `,
209
- app ? `${startAppCommand} && ` : "",
210
- `wait && `,
211
- `hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/snapshot_perf.data.txt"`,
212
- ]
213
- .filter(Boolean)
214
- .join(""),
252
+ run: `${hdcCli.prefix} shell "${riskCollectShellBody}"`,
215
253
  },
216
254
  ];
217
255
  }
@@ -255,7 +293,7 @@ function buildAnalysisPreDecodeCommands(input) {
255
293
  }
256
294
  /** 注入 init/monitor/collect/restore/filter/analysis 流水线及风险目标等派生命令 */
257
295
  export function applyOptions(ctx) {
258
- const { app = "", hstackToolPath = "", sourcemapDir = "", logKey = "pid", duration = "70", backtrackDelay = "80", riskCollectWait = "0", bufferSize = "512000", outputDir = "./output", traceFormatProfile = "default", riskTargets = "all", skipPerfDedupe = false, skipBacktrack = false, skipNonBacktrack = false, dropFailedSamples = false, hdcTarget, parseConcurrency: parseConcurrencyRaw, dryRun = false, list = false, } = ctx.options ?? {};
296
+ const { app = "", hstackToolPath = "", sourcemapDir = "", logKey = "pid", duration = "70", backtrackDelay = "80", riskCollectWait = "0", bufferSize = "512000", outputDir = "./output", traceFormatProfile = "default", riskTargets = "all", traceFrom: traceFromRaw = "hitrace", skipPerfDedupe = false, skipBacktrack = false, skipNonBacktrack = false, dropFailedSamples = false, hdcTarget, parseConcurrency: parseConcurrencyRaw, dryRun = false, list = false, } = ctx.options ?? {};
259
297
  const parseConcurrency = resolveParseConcurrency(parseConcurrencyRaw);
260
298
  const hdcCli = createHdcCli(hdcTarget);
261
299
  const traceFormatProfileNormalized = traceFormatProfile.trim();
@@ -282,6 +320,7 @@ export function applyOptions(ctx) {
282
320
  const perfTextDir = path.join(outputDirNormalized, "perf_txt");
283
321
  const perfTextDirNormalized = path.normalize(perfTextDir);
284
322
  const perfTextDirWithSep = ensureTrailingSeparator(perfTextDirNormalized);
323
+ const traceFrom = parseTraceFrom(traceFromRaw);
285
324
  const selectedRiskTargets = parseRiskTargets(riskTargets).map((key) => RISK_TARGET_DEFINITIONS[key]);
286
325
  const runBacktrackFS = !skipBacktrack &&
287
326
  selectedRiskTargets.some((target) => target.key === "backtrack");
@@ -321,6 +360,7 @@ export function applyOptions(ctx) {
321
360
  startAppCommand: start_app_command,
322
361
  checkStateCommand,
323
362
  riskTargets: selectedRiskTargets,
363
+ traceFrom,
324
364
  });
325
365
  const collectGroup = buildCommonCollectGroup({
326
366
  checkStateCommand,
@@ -364,6 +404,7 @@ export function applyOptions(ctx) {
364
404
  });
365
405
  const restoreEnvGroup = buildCommonRestoreEnvGroup({ hdc: hdcCli });
366
406
  if (!list) {
407
+ logger.info(`[trace-from] ${traceFrom}`);
367
408
  logger.info(`[风险目标] ${selectedRiskTargets.map((target) => target.displayName).join("、")}`);
368
409
  logger.info(`[backtrack] ${!runBacktrackFS
369
410
  ? "跳过"
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../commands/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../commands/report.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "snapshot-checker",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "CLI 工具:按顺序执行 bat / mac / shell 命令",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",