snapshot-checker 0.1.3 → 0.1.5

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
@@ -307,6 +307,95 @@ npm run context
307
307
  npm run forkall
308
308
  ```
309
309
 
310
+ ## 包安装、更新与卸载
311
+
312
+ ### 在业务项目中安装(推荐)
313
+
314
+ ```bash
315
+ npm install snapshot-checker
316
+ ```
317
+
318
+ 使用方式:
319
+
320
+ ```bash
321
+ npx snapshot-checker --help
322
+ ```
323
+
324
+ 卸载:
325
+
326
+ ```bash
327
+ npm uninstall snapshot-checker
328
+ ```
329
+
330
+ 更新到最新版本:
331
+
332
+ ```bash
333
+ npm install snapshot-checker@latest
334
+ # 或更新已安装版本
335
+ npm update snapshot-checker
336
+ ```
337
+
338
+ ### 全局安装(命令行直接可用)
339
+
340
+ ```bash
341
+ npm install -g snapshot-checker
342
+ snapshot-checker --help
343
+ ```
344
+
345
+ 全局卸载/更新:
346
+
347
+ ```bash
348
+ npm uninstall -g snapshot-checker
349
+ npm install -g snapshot-checker@latest
350
+ ```
351
+
352
+ ### 本地调试安装(未发布时)
353
+
354
+ 在本仓库打包:
355
+
356
+ ```bash
357
+ npm run build
358
+ npm pack
359
+ ```
360
+
361
+ 会生成 `snapshot-checker-<version>.tgz`,在目标项目中安装:
362
+
363
+ ```bash
364
+ npm install /path/to/snapshot-checker-<version>.tgz
365
+ ```
366
+
367
+ 卸载同样使用:
368
+
369
+ ```bash
370
+ npm uninstall snapshot-checker
371
+ ```
372
+
373
+ ### 使用 npm link / unlink(本地软链调试)
374
+
375
+ 在本仓库执行:
376
+
377
+ ```bash
378
+ npm link
379
+ ```
380
+
381
+ 在目标项目执行:
382
+
383
+ ```bash
384
+ npm link snapshot-checker
385
+ ```
386
+
387
+ 取消软链(在目标项目):
388
+
389
+ ```bash
390
+ npm unlink snapshot-checker
391
+ ```
392
+
393
+ 如需清理本机全局 link:
394
+
395
+ ```bash
396
+ npm unlink -g snapshot-checker
397
+ ```
398
+
310
399
  ## License
311
400
 
312
401
  MIT
@@ -1 +1 @@
1
- {"version":3,"file":"context_demo.d.ts","sourceRoot":"","sources":["../../commands/context_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAMnF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,EAAE,MA8CpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAqD,CAAC"}
1
+ {"version":3,"file":"context_demo.d.ts","sourceRoot":"","sources":["../../commands/context_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAMxG;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,EAAE,MA8CpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAqD,CAAC"}
@@ -39,9 +39,9 @@ export const groups = {
39
39
  kind: CommandKind.BuiltinFunction,
40
40
  description: '调用 lib/foo 的工具函数写入变量',
41
41
  func: (ctx) => {
42
- const user = ctx.user ?? 'unknown';
43
- ctx.builtinTag = buildTag('context_demo');
44
- ctx.fromFoo = buildUserGreeting(user);
42
+ const user = ctx.get('user') ?? 'unknown';
43
+ ctx.set('builtinTag', buildTag('context_demo'));
44
+ ctx.set('fromFoo', buildUserGreeting(user));
45
45
  },
46
46
  },
47
47
  {
@@ -1 +1 @@
1
- {"version":3,"file":"context_demo.js","sourceRoot":"","sources":["../../commands/context_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAe,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,oCAAoC;AACpC,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,OAAO,EAAE;QACP;YACE,IAAI;YACJ,WAAW,EAAE,oBAAoB;YACjC,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF;IACD,KAAK,EAAE;QACL;YACE,IAAI;YACJ,WAAW,EAAE,eAAe;YAC5B,GAAG,EAAE,wBAAwB;SAC9B;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW,CAAC,eAAe;YACjC,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;gBACnC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC1C,GAAG,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;SACF;QACD;YACE,IAAI;YACJ,WAAW,EAAE,aAAa;YAC1B,GAAG,EAAE,qCAAqC;SAC3C;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,WAAW,CAAC,eAAe;YACjC,WAAW,EAAE,uCAAuC;YACpD,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK;SAClB;QACD;YACE,IAAI;YACJ,WAAW,EAAE,6BAA6B;YAC1C,GAAG,EAAE,qDAAqD;SAC3D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"context_demo.js","sourceRoot":"","sources":["../../commands/context_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAoC,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,oCAAoC;AACpC,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,OAAO,EAAE;QACP;YACE,IAAI;YACJ,WAAW,EAAE,oBAAoB;YACjC,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF;IACD,KAAK,EAAE;QACL;YACE,IAAI;YACJ,WAAW,EAAE,eAAe;YAC5B,GAAG,EAAE,wBAAwB;SAC9B;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW,CAAC,eAAe;YACjC,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,CAAC,GAAmB,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAS,MAAM,CAAC,IAAI,SAAS,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAChD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;SACF;QACD;YACE,IAAI;YACJ,WAAW,EAAE,aAAa;YAC1B,GAAG,EAAE,qCAAqC;SAC3C;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,WAAW,CAAC,eAAe;YACjC,WAAW,EAAE,uCAAuC;YACpD,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK;SAClB;QACD;YACE,IAAI;YACJ,WAAW,EAAE,6BAA6B;YAC1C,GAAG,EAAE,qDAAqD;SAC3D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC"}
@@ -29,20 +29,10 @@ interface ForkallOptions {
29
29
  bufferSize?: string;
30
30
  mode?: string;
31
31
  outputDir?: string;
32
+ traceFormatProfile?: string;
32
33
  }
33
34
  /**
34
35
  * 将 CLI 解析出来的参数应用到 forkall 场景,动态生成各阶段命令。
35
- *
36
- * 关键映射关系:
37
- * - eventPath -> dump_stack.bat 中的 event_path
38
- * - app -> dump_stack.bat 中的 app
39
- * - systemSymbolFilePath -> dump_stack.bat 中的 system_symbol_file_path
40
- * - logKey -> dump_stack.bat 中的 log_key(默认 pid)
41
- * - duration -> dump_stack.bat 中的 duration(默认 70)
42
- * - defaultTimeout -> dump_stack.bat 中的 default_timeout(默认 90)
43
- * - bufferSize -> dump_stack.bat 中的 buffer_size(默认 512000)
44
- * - mode -> dump_stack.bat 中根据参数跳转到 REBOOT 或 MONITOR 的条件分支
45
- * - outputDir -> 本地输出目录(默认 .\output)
46
36
  */
47
37
  export declare function applyOptions(ctx: {
48
38
  groups: Groups;
@@ -1 +1 @@
1
- {"version":3,"file":"forkall.d.ts","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiD,CAAC;AAExF,eAAO,MAAM,OAAO;;;;;;;;IA0BnB,CAAC;AAEF,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,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,CA8NlD"}
1
+ {"version":3,"file":"forkall.d.ts","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK1E;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiD,CAAC;AAExF,eAAO,MAAM,OAAO;;;;;;;;IA+BnB,CAAC;AAEF,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAmJD;;GAEG;AACH,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,CA2FlD"}
@@ -1,6 +1,7 @@
1
1
  import { CommandKind } from '../src/types.js';
2
2
  import path from 'node:path';
3
3
  import { existsSync, mkdirSync } from 'node:fs';
4
+ import { buildCommonAnalysisGroup, buildCommonCollectGroup, buildCommonInitEnvGroup } from '../src/lib/common_groups.js';
4
5
  /**
5
6
  * forkall 场景的基础占位配置。
6
7
  * 实际要执行的命令会在 applyOptions 中,根据 CLI 传入的参数(eventPath/app 等)动态生成。
@@ -38,201 +39,185 @@ export const options = [
38
39
  description: '本地输出目录(默认 .\\output)',
39
40
  defaultValue: String.raw `.\output`,
40
41
  },
42
+ {
43
+ flags: '--trace-format-profile <name>',
44
+ description: 'trace 事件格式版本(默认 default)',
45
+ defaultValue: 'default',
46
+ },
41
47
  ];
42
- /**
43
- * CLI 解析出来的参数应用到 forkall 场景,动态生成各阶段命令。
44
- *
45
- * 关键映射关系:
46
- * - eventPath -> dump_stack.bat 中的 event_path
47
- * - app -> dump_stack.bat 中的 app
48
- * - systemSymbolFilePath -> dump_stack.bat 中的 system_symbol_file_path
49
- * - logKey -> dump_stack.bat 中的 log_key(默认 pid)
50
- * - duration -> dump_stack.bat 中的 duration(默认 70)
51
- * - defaultTimeout -> dump_stack.bat 中的 default_timeout(默认 90)
52
- * - bufferSize -> dump_stack.bat 中的 buffer_size(默认 512000)
53
- * - mode -> dump_stack.bat 中根据参数跳转到 REBOOT 或 MONITOR 的条件分支
54
- * - outputDir -> 本地输出目录(默认 .\output)
55
- */
56
- export function applyOptions(ctx) {
57
- const { eventPath = '', app = '', systemSymbolFilePath = '', logKey = 'pid', duration = '70', defaultTimeout = '90', bufferSize = '512000', mode = 'monitor', outputDir = String.raw `.\output`, } = ctx.options ?? {};
58
- const eventName = eventPath ? eventPath.replace(/\//g, ':') : '';
59
- const checkStateCommand = "hidumper -s 1901 -a '-p libforkall_plugin.z.so --list'";
60
- const outputDirNormalized = path.normalize(outputDir);
61
- const outputDirWithSep = outputDirNormalized.endsWith(path.sep)
62
- ? outputDirNormalized
63
- : `${outputDirNormalized}${path.sep}`;
64
- const snapshotLogFile = path.join(outputDirNormalized, 'snapshot_log.txt');
65
- const snapshotPerfFile = path.join(outputDirNormalized, 'snapshot_perf.data.txt');
66
- const dumpStackTxt = path.join(outputDirNormalized, 'dump_stack.txt');
67
- const dumpStackXlsx = path.join(outputDirNormalized, 'dump_stack.xlsx');
68
- const dumpStackJson = path.join(outputDirNormalized, 'dump_stack.json');
69
- const hiperfTxtFilterScript = path.normalize(path.join('.', 'tools', 'host', 'checker', 'hiperf_txt_filter.py'));
70
- const parserSystemStackScript = path.normalize(path.join('.', 'tools', 'host', 'checker', 'parse_system_stack.py'));
71
- const start_app_command = `hidumper -s 1901 -a '-p libforkall_plugin.z.so --create 100 ${app}'`;
72
- if (!existsSync(outputDirNormalized)) {
73
- mkdirSync(outputDirNormalized, { recursive: true });
74
- }
75
- const rebootGroup = mode === 'reboot-monitor'
76
- ? [
77
- {
78
- kind: CommandKind.Windows,
79
- run: 'hdc shell remount',
80
- },
81
- {
82
- kind: CommandKind.Windows,
83
- run: 'hdc shell "test ! -f /system/etc/hiview/hitrace_utils.json.bk && mv /system/etc/hiview/hitrace_utils.json /system/etc/hiview/hitrace_utils.json.bk"',
84
- },
85
- {
86
- kind: CommandKind.Windows,
87
- run: 'hdc shell "test ! -f /bin/hiperf.bk && mv /bin/hiperf /bin/hiperf.bk"',
88
- },
89
- {
90
- kind: CommandKind.Windows,
91
- description: '上传hitrace配置文件',
92
- run: String.raw `hdc file send .\config\hitrace\hitrace_utils_snapshot.json /system/etc/hiview/hitrace_utils.json`,
93
- },
94
- {
95
- kind: CommandKind.Windows,
96
- description: '上传hiperf',
97
- run: String.raw `hdc file send .\tools\host\hiperf\hiperf /bin/hiperf`,
98
- },
99
- {
100
- kind: CommandKind.Windows,
101
- description: '配置自定义trace事件',
102
- run: String.raw `hdc shell "sed -i 's|<TARGET_EVENT>|${eventPath}|g' /system/etc/hiview/hitrace_utils.json"`,
103
- },
104
- {
105
- kind: CommandKind.Windows,
106
- description: '配置hiperf权限',
107
- run: 'hdc shell "chmod 755 /bin/hiperf && chcon u:object_r:hiperf_exec:s0 /bin/hiperf"',
108
- },
109
- {
110
- kind: CommandKind.Windows,
111
- description: '重启设备',
112
- run: 'hdc shell reboot',
113
- },
114
- {
115
- kind: CommandKind.Embed,
116
- description: '等待设备重启中,按任意键可跳过',
117
- run: `timeout ${defaultTimeout}`,
118
- },
119
- ]
120
- : [];
121
- const initEnvGroup = [
48
+ function buildRebootGroup(input) {
49
+ const { mode, eventPath, defaultTimeout } = input;
50
+ if (mode !== 'reboot-monitor')
51
+ return [];
52
+ return [
122
53
  {
123
54
  kind: CommandKind.Windows,
124
55
  run: 'hdc shell remount',
125
56
  },
126
57
  {
127
58
  kind: CommandKind.Windows,
128
- description: '清理设备采集残留',
129
- run: 'hdc shell "rm -rf /data/local/tmp/snapshot_hitrace.txt /data/local/tmp/perf.data /data/local/tmp/snapshot_perf.data.txt"',
59
+ run: 'hdc shell "test ! -f /system/etc/hiview/hitrace_utils.json.bk && mv /system/etc/hiview/hitrace_utils.json /system/etc/hiview/hitrace_utils.json.bk"',
130
60
  },
131
61
  {
132
62
  kind: CommandKind.Windows,
133
- description: '清理日志',
134
- run: `del /q "${snapshotLogFile}" 2>nul || exit /b 0`,
63
+ run: 'hdc shell "test ! -f /bin/hiperf.bk && mv /bin/hiperf /bin/hiperf.bk"',
135
64
  },
136
65
  {
137
66
  kind: CommandKind.Windows,
138
- description: '关闭应用',
139
- run: `hdc shell "aa force-stop ${app}"`,
67
+ description: '上传hitrace配置文件',
68
+ run: String.raw `hdc file send .\config\hitrace\hitrace_utils_snapshot.json /system/etc/hiview/hitrace_utils.json`,
140
69
  },
141
70
  {
142
71
  kind: CommandKind.Windows,
143
- description: '删除应用镜像',
144
- run: `hdc shell hidumper -s 1901 -a '-p libforkall_plugin.z.so --delete ${app}'`,
72
+ description: '上传hiperf',
73
+ run: String.raw `hdc file send .\tools\host\hiperf\hiperf /bin/hiperf`,
145
74
  },
146
75
  {
147
76
  kind: CommandKind.Windows,
148
- description: '检查当前可用事件列表',
149
- run: `hdc shell "${checkStateCommand}"`,
77
+ description: '配置自定义trace事件',
78
+ run: String.raw `hdc shell "sed -i 's|<TARGET_EVENT>|${eventPath}|g' /system/etc/hiview/hitrace_utils.json"`,
150
79
  },
151
80
  {
152
81
  kind: CommandKind.Windows,
153
- description: '配置模式开关',
154
- run: `hdc shell "echo 000 > /proc/checkpoint/revoke_switch && echo checkout_witch "`,
82
+ description: '配置hiperf权限',
83
+ run: 'hdc shell "chmod 755 /bin/hiperf && chcon u:object_r:hiperf_exec:s0 /bin/hiperf"',
155
84
  },
156
85
  {
157
86
  kind: CommandKind.Windows,
158
- description: '配置事件权限',
159
- run: `hdc shell "chmod 755 /sys/kernel/tracing/events/${eventPath} && chmod 666 /sys/kernel/tracing/events/${eventPath}/enable"`,
160
- }
87
+ description: '重启设备',
88
+ run: 'hdc shell reboot',
89
+ },
90
+ {
91
+ kind: CommandKind.Embed,
92
+ description: '等待设备重启中,按任意键可跳过',
93
+ run: `timeout ${defaultTimeout}`,
94
+ },
161
95
  ];
162
- const monitorGroup = [
96
+ }
97
+ function buildMonitorGroup(input) {
98
+ const { eventName, app, logKey, bufferSize, duration, snapshotLogFile, startAppCommand, checkStateCommand, } = input;
99
+ return [
163
100
  {
164
101
  kind: CommandKind.Windows,
165
102
  description: '收集日志到本地',
166
103
  background: true,
167
104
  run: `hdc shell "hilog -t kmsg | grep ${logKey}" >> ${snapshotLogFile}`,
168
105
  },
106
+ {
107
+ kind: CommandKind.Windows,
108
+ run: 'hdc shell pidof apppool',
109
+ captureToVar: {
110
+ name: 'apppool_pids',
111
+ },
112
+ },
113
+ {
114
+ kind: CommandKind.BuiltinFunction,
115
+ description: '提取检测目标信息',
116
+ func: (ctx) => {
117
+ const apppoolPids = ctx.get('apppool_pids');
118
+ if (!apppoolPids) {
119
+ console.warn('[提取检测目标信息] apppool_pids 缺失或不是字符串,跳过处理');
120
+ return false;
121
+ }
122
+ const monitorTarget = apppoolPids.split(/\s+/).join(',');
123
+ ctx.set('monitor_target', monitorTarget);
124
+ console.info('提取检测目标: ', monitorTarget);
125
+ },
126
+ },
169
127
  {
170
128
  kind: CommandKind.Windows,
171
129
  description: '收集风险事件数据',
172
130
  run: [
173
131
  'hdc shell "',
174
- `echo [SnapshotChecker]: Setting Target && `,
175
132
  `hitrace custom_event --overwrite -b ${bufferSize} -t ${duration} -o /data/local/tmp/snapshot_hitrace.txt & `,
176
133
  eventName
177
- ? `hiperf record -e ${eventName} --period 1 -s fp --clockid boottime --cpu-limit 100 -o /data/local/tmp/perf.data -a --exclude-hiperf -d ${duration} & `
178
- : '',
179
- `echo [SnapshotChecker]: Monitor start, Target: app=${app} && `,
180
- `sleep 5 && `,
181
- app
182
- ? `${start_app_command} && `
134
+ ? `hiperf record -e ${eventName} --period 1 -s fp --clockid boottime --callchain-useronly --cpu-limit 100 -o /data/local/tmp/perf.data -p {{monitor_target}} -d ${duration} & `
183
135
  : '',
136
+ 'sleep 1 && ',
137
+ app ? `${startAppCommand} && ` : '',
184
138
  `${checkStateCommand} & `,
185
- `wait && `,
186
- `echo [SnapshotChecker]: Monitor end, App Pid is: \`pidof ${app}\`, Please Check... && `,
187
- `hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/snapshot_perf.data.txt"`,
139
+ 'wait && ',
140
+ 'hiperf dump -i /data/local/tmp/perf.data -o /data/local/tmp/snapshot_perf.data.txt"',
188
141
  ]
189
142
  .filter(Boolean)
190
143
  .join(''),
191
144
  },
192
145
  ];
193
- const collectGroup = [
194
- {
195
- kind: CommandKind.Windows,
196
- description: '检查状态',
197
- run: `hdc shell "${checkStateCommand}"`,
198
- },
199
- {
200
- kind: CommandKind.Windows,
201
- description: '收集采集结果',
202
- run: [
203
- `hdc file recv /data/local/tmp/snapshot_perf.data.txt "${outputDirWithSep}" && `,
204
- `hdc file recv /data/local/tmp/snapshot_hitrace.txt "${outputDirWithSep}" && `,
205
- `hdc file recv /data/local/tmp/perf.data "${outputDirWithSep}"`,
206
- ].join(''),
207
- },
208
- ];
209
- const analysisGroup = [
210
- {
211
- kind: CommandKind.Windows,
212
- description: '获取目标tgid',
213
- run: `hdc shell pgrep -f -o ${app}`,
214
- captureToVar: {
215
- name: 'target_tgid',
216
- },
217
- },
218
- {
219
- kind: CommandKind.Windows,
220
- description: '过滤目标数据',
221
- run: `python ${hiperfTxtFilterScript} --keep_raw_data --keep_duplicate_stacks --input_file ${snapshotPerfFile} --output_file ${snapshotPerfFile} --filter_by_tgid {{target_tgid}}`,
222
- },
223
- {
224
- kind: CommandKind.Windows,
225
- description: '系统栈解栈',
226
- run: systemSymbolFilePath
227
- ? `python ${parserSystemStackScript} ${snapshotPerfFile} ${snapshotPerfFile} -S ${systemSymbolFilePath}`
228
- : '',
229
- },
230
- {
231
- kind: CommandKind.Windows,
232
- description: '风险调用栈数据分析',
233
- run: `python ${hiperfTxtFilterScript} --to_backtrace_stack --input_file ${snapshotPerfFile} --output_file ${dumpStackTxt} --output_csv ${dumpStackXlsx} --output_json ${dumpStackJson}`,
234
- },
146
+ }
147
+ function buildAnalysisPreDecodeCommands(input) {
148
+ const { systemSymbolFilePath, snapshotPerfFile, parserSystemStackScript, } = input;
149
+ return [
150
+ ...(systemSymbolFilePath
151
+ ? [
152
+ {
153
+ kind: CommandKind.Windows,
154
+ description: '系统栈解栈',
155
+ run: `python ${parserSystemStackScript} ${snapshotPerfFile} ${snapshotPerfFile} -S ${systemSymbolFilePath}`,
156
+ },
157
+ ]
158
+ : []),
235
159
  ];
160
+ }
161
+ /**
162
+ * 将 CLI 解析出来的参数应用到 forkall 场景,动态生成各阶段命令。
163
+ */
164
+ export function applyOptions(ctx) {
165
+ const { eventPath = '', app = '', systemSymbolFilePath = '', logKey = 'pid', duration = '70', defaultTimeout = '90', bufferSize = '512000', mode = 'monitor', outputDir = String.raw `.\output`, traceFormatProfile = 'default', } = ctx.options ?? {};
166
+ const eventName = eventPath ? eventPath.replace(/\//g, ':') : '';
167
+ const checkStateCommand = "hidumper -s 1901 -a '-p libforkall_plugin.z.so --list'";
168
+ const outputDirNormalized = path.normalize(outputDir);
169
+ const outputDirWithSep = outputDirNormalized.endsWith(path.sep)
170
+ ? outputDirNormalized
171
+ : `${outputDirNormalized}${path.sep}`;
172
+ const snapshotLogFile = path.join(outputDirNormalized, 'snapshot_log.txt');
173
+ const snapshotPerfFile = path.join(outputDirNormalized, 'snapshot_perf.data.txt');
174
+ const dumpStackTxt = path.join(outputDirNormalized, 'dump_stack.txt');
175
+ const dumpStackJson = path.join(outputDirNormalized, 'dump_stack.json');
176
+ const parserSystemStackScript = path.normalize(path.join('.', 'tools', 'host', 'checker', 'parse_system_stack.py'));
177
+ const startAppCommand = `hidumper -s 1901 -a '-p libforkall_plugin.z.so --create 100 ${app}'`;
178
+ if (!existsSync(outputDirNormalized)) {
179
+ mkdirSync(outputDirNormalized, { recursive: true });
180
+ }
181
+ const rebootGroup = buildRebootGroup({ mode, eventPath, defaultTimeout });
182
+ const initEnvGroup = buildCommonInitEnvGroup({
183
+ app,
184
+ snapshotLogFile,
185
+ checkStateCommand,
186
+ permissionCommands: [
187
+ `hdc shell "chmod 755 /sys/kernel/tracing/events/${eventPath} && chmod 666 /sys/kernel/tracing/events/${eventPath}/enable"`,
188
+ ],
189
+ });
190
+ const monitorGroup = buildMonitorGroup({
191
+ eventName,
192
+ app,
193
+ logKey,
194
+ bufferSize,
195
+ duration,
196
+ snapshotLogFile,
197
+ startAppCommand,
198
+ checkStateCommand,
199
+ });
200
+ const collectGroup = buildCommonCollectGroup({
201
+ checkStateCommand,
202
+ snapshotPerfReceiveDirWithSep: outputDirWithSep,
203
+ outputDirWithSep,
204
+ });
205
+ const analysisGroup = buildCommonAnalysisGroup({
206
+ app,
207
+ snapshotPerfFile,
208
+ writeBacktraceStacks: false,
209
+ preDecodeCommands: buildAnalysisPreDecodeCommands({
210
+ systemSymbolFilePath,
211
+ snapshotPerfFile,
212
+ parserSystemStackScript,
213
+ }),
214
+ decodeInput: { inputFilePath: snapshotPerfFile },
215
+ dumpStackTxt,
216
+ dumpStackJson,
217
+ traceFormatProfile,
218
+ decodeStageName: '风险调用栈数据分析',
219
+ missingInputMessage: '[风险调用栈数据分析] 输入文件缺失,跳过处理',
220
+ });
236
221
  const resultGroups = {
237
222
  reboot: rebootGroup,
238
223
  init: initEnvGroup,
@@ -1 +1 @@
1
- {"version":3,"file":"forkall.js","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forkall.js","sourceRoot":"","sources":["../../commands/forkall.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ export declare const options: ({
11
11
  defaultValue: string;
12
12
  })[];
13
13
  interface ForkallOptions {
14
- eventPath?: string;
15
14
  app?: string;
16
15
  hstackToolPath?: string;
17
16
  sourcemapDir?: string;
@@ -19,6 +18,7 @@ interface ForkallOptions {
19
18
  duration?: string;
20
19
  bufferSize?: string;
21
20
  outputDir?: string;
21
+ traceFormatProfile?: string;
22
22
  }
23
23
  export declare function applyOptions(ctx: {
24
24
  groups: Groups;
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../commands/report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9D,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiD,CAAC;AAExF,eAAO,MAAM,OAAO;;;;;;;;IAgBnB,CAAC;AAEF,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,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,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,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,CA0MlD"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../commands/report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK1E,eAAO,MAAM,MAAM,EAAE,MAAW,CAAC;AAEjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiD,CAAC;AAExF,eAAO,MAAM,OAAO;;;;;;;;IAqBnB,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,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA4HD,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,CA6FlD"}