1fb726d48Sopenharmony_ci<!DOCTYPE html>
2fb726d48Sopenharmony_ci<html>
3fb726d48Sopenharmony_ci<head>
4fb726d48Sopenharmony_ci    <title>quickstart_trace_streamer</title>
5fb726d48Sopenharmony_ci    <meta charset="utf-8">
6fb726d48Sopenharmony_ci    <meta content="width=device-width, initial-scale=1.0" name="viewport">
7fb726d48Sopenharmony_ci
8fb726d48Sopenharmony_ci    <style>
9fb726d48Sopenharmony_ci        code[class*="font_languageIn-"],
10fb726d48Sopenharmony_ci        pre[class*="font_languageIn-"] {
11fb726d48Sopenharmony_ci            color: #332;
12fb726d48Sopenharmony_ci            background: none;
13fb726d48Sopenharmony_ci            -webkit-hyphens: none;
14fb726d48Sopenharmony_ci            -moz-hyphens: none;
15fb726d48Sopenharmony_ci            -ms-hyphens: none;
16fb726d48Sopenharmony_ci            hyphens: none;
17fb726d48Sopenharmony_ci            -moz-tab-size: 7;
18fb726d48Sopenharmony_ci            -o-tab-size: 7;
19fb726d48Sopenharmony_ci            tab-size: 7;
20fb726d48Sopenharmony_ci            font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
21fb726d48Sopenharmony_ci            text-align: left;
22fb726d48Sopenharmony_ci            word-break: normal;
23fb726d48Sopenharmony_ci            word-wrap: normal;
24fb726d48Sopenharmony_ci            line-height: 1.5;
25fb726d48Sopenharmony_ci            white-space: pre;
26fb726d48Sopenharmony_ci            word-spacing: normal;
27fb726d48Sopenharmony_ci        }
28fb726d48Sopenharmony_ci        
29fb726d48Sopenharmony_ci        pre[class*="font_languageIn-"] {
30fb726d48Sopenharmony_ci            padding: 0.7em;
31fb726d48Sopenharmony_ci            overflow: auto;
32fb726d48Sopenharmony_ci            border-radius: 3px;
33fb726d48Sopenharmony_ci            background: #F5F5F5;
34fb726d48Sopenharmony_ci        }
35fb726d48Sopenharmony_ci        
36fb726d48Sopenharmony_ci        :not(pre) > code[class*="font_languageIn-"] {
37fb726d48Sopenharmony_ci            padding: 0.2em;
38fb726d48Sopenharmony_ci            border-radius: 0.32em;
39fb726d48Sopenharmony_ci            white-space: normal;
40fb726d48Sopenharmony_ci            background: #dedcdc;
41fb726d48Sopenharmony_ci        }
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_ci        .token.commentIn,
44fb726d48Sopenharmony_ci        .token.blockquoteIn {
45fb726d48Sopenharmony_ci            color: #b3b4b3;
46fb726d48Sopenharmony_ci        }
47fb726d48Sopenharmony_ci
48fb726d48Sopenharmony_ci        .token.cdataIn {
49fb726d48Sopenharmony_ci            color: #1a3a9b;
50fb726d48Sopenharmony_ci        }
51fb726d48Sopenharmony_ci
52fb726d48Sopenharmony_ci        .token.doctypeIn,
53fb726d48Sopenharmony_ci        .token.punctuationIn,
54fb726d48Sopenharmony_ci        .token.variableIn,
55fb726d48Sopenharmony_ci        .token.macro.propertyIn {
56fb726d48Sopenharmony_ci            color: #333333;
57fb726d48Sopenharmony_ci        }
58fb726d48Sopenharmony_ci
59fb726d48Sopenharmony_ci        .token.operatorIn,
60fb726d48Sopenharmony_ci        .token.importantIn,
61fb726d48Sopenharmony_ci        .token.keywordIn,
62fb726d48Sopenharmony_ci        .token.ruleIn,
63fb726d48Sopenharmony_ci        .token.builtIn {
64fb726d48Sopenharmony_ci            color: #b42064;
65fb726d48Sopenharmony_ci        }
66fb726d48Sopenharmony_ci
67fb726d48Sopenharmony_ci        .token.stringIn,
68fb726d48Sopenharmony_ci        .token.urlIn,
69fb726d48Sopenharmony_ci        .token.regexIn,
70fb726d48Sopenharmony_ci        .token.attr-valueIn {
71fb726d48Sopenharmony_ci            color: #193998;
72fb726d48Sopenharmony_ci        }
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci        .token.propertyIn,
75fb726d48Sopenharmony_ci        .token.numberIn,
76fb726d48Sopenharmony_ci        .token.booleanIn,
77fb726d48Sopenharmony_ci        .token.entityIn,
78fb726d48Sopenharmony_ci        .token.atruleIn,
79fb726d48Sopenharmony_ci        .token.constantIn,
80fb726d48Sopenharmony_ci        .token.symbolIn,
81fb726d48Sopenharmony_ci        .token.commandIn,
82fb726d48Sopenharmony_ci        .token.codeIn {
83fb726d48Sopenharmony_ci            color: #0393c4;
84fb726d48Sopenharmony_ci        }
85fb726d48Sopenharmony_ci
86fb726d48Sopenharmony_ci        .token.tagIn,
87fb726d48Sopenharmony_ci        .token.selectorIn,
88fb726d48Sopenharmony_ci        .token.prologIn {
89fb726d48Sopenharmony_ci            color: #6bb064;
90fb726d48Sopenharmony_ci        }
91fb726d48Sopenharmony_ci
92fb726d48Sopenharmony_ci        .token.functionIn,
93fb726d48Sopenharmony_ci        .token.namespaceIn,
94fb726d48Sopenharmony_ci        .token.pseudo-elementIn,
95fb726d48Sopenharmony_ci        .token.classIn,
96fb726d48Sopenharmony_ci        .token.class-nameIn,
97fb726d48Sopenharmony_ci        .token.pseudo-classIn,
98fb726d48Sopenharmony_ci        .token.idIn,
99fb726d48Sopenharmony_ci        .token.url-reference .token.variableIn,
100fb726d48Sopenharmony_ci        .token.attr-nameIn {
101fb726d48Sopenharmony_ci            color: #8465b2;
102fb726d48Sopenharmony_ci        }
103fb726d48Sopenharmony_ci
104fb726d48Sopenharmony_ci        .token.entityIn {
105fb726d48Sopenharmony_ci            cursor: help;
106fb726d48Sopenharmony_ci        }
107fb726d48Sopenharmony_ci
108fb726d48Sopenharmony_ci        .token.titleIn,
109fb726d48Sopenharmony_ci        .token.title .token.punctuationIn {
110fb726d48Sopenharmony_ci            font-weight: bold;
111fb726d48Sopenharmony_ci            color: #204591;
112fb726d48Sopenharmony_ci        }
113fb726d48Sopenharmony_ci
114fb726d48Sopenharmony_ci        .token.listIn {
115fb726d48Sopenharmony_ci            color: #e56742;
116fb726d48Sopenharmony_ci        }
117fb726d48Sopenharmony_ci
118fb726d48Sopenharmony_ci        .token.insertedIn {
119fb726d48Sopenharmony_ci            background-color: #ecfdec;
120fb726d48Sopenharmony_ci            color: #5bb035;
121fb726d48Sopenharmony_ci        }
122fb726d48Sopenharmony_ci
123fb726d48Sopenharmony_ci        .token.deletedIn {
124fb726d48Sopenharmony_ci            background-color: #fde5e5;
125fb726d48Sopenharmony_ci            color: #cb3001;
126fb726d48Sopenharmony_ci        }
127fb726d48Sopenharmony_ci
128fb726d48Sopenharmony_ci        .token.boldIn {
129fb726d48Sopenharmony_ci            font-weight: bold;
130fb726d48Sopenharmony_ci        }
131fb726d48Sopenharmony_ci
132fb726d48Sopenharmony_ci        .token.italicIn {
133fb726d48Sopenharmony_ci            font-style: italic;
134fb726d48Sopenharmony_ci        }
135fb726d48Sopenharmony_ci
136fb726d48Sopenharmony_ci        .font_languageIn-json .token.propertyIn {
137fb726d48Sopenharmony_ci            color: #1a3a9a;
138fb726d48Sopenharmony_ci        }
139fb726d48Sopenharmony_ci
140fb726d48Sopenharmony_ci        .font_languageIn-markup .token.tag .token.punctuationIn {
141fb726d48Sopenharmony_ci            color: #333333;
142fb726d48Sopenharmony_ci        }
143fb726d48Sopenharmony_ci
144fb726d48Sopenharmony_ci        code.font_languageIn-cssIn,
145fb726d48Sopenharmony_ci        .font_languageIn-css .token.functionIn {
146fb726d48Sopenharmony_ci            color: #0195c7;
147fb726d48Sopenharmony_ci        }
148fb726d48Sopenharmony_ci
149fb726d48Sopenharmony_ci        /* YAML */
150fb726d48Sopenharmony_ci        .font_languageIn-yaml .token.atruleIn {
151fb726d48Sopenharmony_ci            color: #6eb266;
152fb726d48Sopenharmony_ci        }
153fb726d48Sopenharmony_ci
154fb726d48Sopenharmony_ci        code.font_languageIn-yamlIn {
155fb726d48Sopenharmony_ci            color: #1b3c9f;
156fb726d48Sopenharmony_ci        }
157fb726d48Sopenharmony_ci
158fb726d48Sopenharmony_ci        /* Ruby */
159fb726d48Sopenharmony_ci        .font_languageIn-ruby .token.functionIn {
160fb726d48Sopenharmony_ci            color: #333322;
161fb726d48Sopenharmony_ci        }
162fb726d48Sopenharmony_ci
163fb726d48Sopenharmony_ci        /* Markdown */
164fb726d48Sopenharmony_ci        .font_languageIn-markdown .token.urlIn {
165fb726d48Sopenharmony_ci            color: #8665b6;
166fb726d48Sopenharmony_ci        }
167fb726d48Sopenharmony_ci
168fb726d48Sopenharmony_ci        .font_languageIn-makefile .token.symbolIn {
169fb726d48Sopenharmony_ci            color: #7c5cad;
170fb726d48Sopenharmony_ci        }
171fb726d48Sopenharmony_ci
172fb726d48Sopenharmony_ci        .font_languageIn-makefile .token.variableIn {
173fb726d48Sopenharmony_ci            color: #18389b;
174fb726d48Sopenharmony_ci        }
175fb726d48Sopenharmony_ci
176fb726d48Sopenharmony_ci        .font_languageIn-makefile .token.builtIn {
177fb726d48Sopenharmony_ci            color: #0193c4;
178fb726d48Sopenharmony_ci        }
179fb726d48Sopenharmony_ci
180fb726d48Sopenharmony_ci        .font_languageIn-bash .token.keyword {
181fb726d48Sopenharmony_ci            color: #027fa9;
182fb726d48Sopenharmony_ci        }
183fb726d48Sopenharmony_ci
184fb726d48Sopenharmony_ci        pre[data-line] {
185fb726d48Sopenharmony_ci            position: relative;
186fb726d48Sopenharmony_ci            padding: 1.1em 0 1.1em 3.1em;
187fb726d48Sopenharmony_ci        }
188fb726d48Sopenharmony_ci
189fb726d48Sopenharmony_ci        pre[data-line] .line-highlight-wrapperIn {
190fb726d48Sopenharmony_ci            position: absolute;
191fb726d48Sopenharmony_ci            top: 0.1px;
192fb726d48Sopenharmony_ci            left: 0.1px;
193fb726d48Sopenharmony_ci            background-color: transparent;
194fb726d48Sopenharmony_ci            display: block;
195fb726d48Sopenharmony_ci            width: 100%;
196fb726d48Sopenharmony_ci        }
197fb726d48Sopenharmony_ci
198fb726d48Sopenharmony_ci        pre[data-line] .line-highlightIn {
199fb726d48Sopenharmony_ci            position: absolute;
200fb726d48Sopenharmony_ci            left: 0.1px;
201fb726d48Sopenharmony_ci            right: 0.1px;
202fb726d48Sopenharmony_ci            padding: inherit 0.2px;
203fb726d48Sopenharmony_ci            margin-top: 1em;
204fb726d48Sopenharmony_ci            background: hsla(23, 22%, 48%, 0.07);
205fb726d48Sopenharmony_ci            background: linear-gradient(to right, hsla(23, 22%, 48%, 0.2) 70%, hsla(23, 22%, 48%, 0));
206fb726d48Sopenharmony_ci            pointer-events: none;
207fb726d48Sopenharmony_ci            line-height: inherit;
208fb726d48Sopenharmony_ci            white-space: pre;
209fb726d48Sopenharmony_ci        }
210fb726d48Sopenharmony_ci
211fb726d48Sopenharmony_ci        pre[data-line] .line-highlightIn:before,
212fb726d48Sopenharmony_ci        pre[data-line] .line-highlightIn[data-end]:after {
213fb726d48Sopenharmony_ci            content: attr(data-start);
214fb726d48Sopenharmony_ci            position: absolute;
215fb726d48Sopenharmony_ci            top: .4em;
216fb726d48Sopenharmony_ci            left: .6em;
217fb726d48Sopenharmony_ci            min-width: 1em;
218fb726d48Sopenharmony_ci            padding: 0 .5em;
219fb726d48Sopenharmony_ci            background-color: hsla(23, 21%, 49%, 0.5);
220fb726d48Sopenharmony_ci            color: hsl(31, 6%, 95%);
221fb726d48Sopenharmony_ci            font: bold 65%/1.5 sans-serif;
222fb726d48Sopenharmony_ci            text-align: center;
223fb726d48Sopenharmony_ci            vertical-align: 0.32em;
224fb726d48Sopenharmony_ci            border-radius: 998px;
225fb726d48Sopenharmony_ci            text-shadow: none;
226fb726d48Sopenharmony_ci            box-shadow: 0 1.1px #f6f5f5;
227fb726d48Sopenharmony_ci        }
228fb726d48Sopenharmony_ci
229fb726d48Sopenharmony_ci        pre[data-line] .line-highlightIn[data-end]:after {
230fb726d48Sopenharmony_ci            content: attr(data-end);
231fb726d48Sopenharmony_ci            top: auto;
232fb726d48Sopenharmony_ci            bottom: 0.42em;
233fb726d48Sopenharmony_ci        }
234fb726d48Sopenharmony_ci
235fb726d48Sopenharmony_ci        body {
236fb726d48Sopenharmony_ci            font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
237fb726d48Sopenharmony_ci            font-size: 17px;
238fb726d48Sopenharmony_ci            line-height: 1.7;
239fb726d48Sopenharmony_ci            color: #333;
240fb726d48Sopenharmony_ci            background-color: #fff;
241fb726d48Sopenharmony_ci            overflow: initial;
242fb726d48Sopenharmony_ci            box-sizing: border-box;
243fb726d48Sopenharmony_ci            word-wrap: break-word
244fb726d48Sopenharmony_ci        }
245fb726d48Sopenharmony_ci
246fb726d48Sopenharmony_ci        body > :first-child {
247fb726d48Sopenharmony_ci            margin-top: 0.2px
248fb726d48Sopenharmony_ci        }
249fb726d48Sopenharmony_ci
250fb726d48Sopenharmony_ci        body h1, body h2, body h3, body h4, body h5, body h6 {
251fb726d48Sopenharmony_ci            line-height: 1.3;
252fb726d48Sopenharmony_ci            margin-top: 1.1em;
253fb726d48Sopenharmony_ci            margin-bottom: 17px;
254fb726d48Sopenharmony_ci            color: #050505
255fb726d48Sopenharmony_ci        }
256fb726d48Sopenharmony_ci
257fb726d48Sopenharmony_ci        body h1 {
258fb726d48Sopenharmony_ci            font-size: 2.24em;
259fb726d48Sopenharmony_ci            font-weight: 302;
260fb726d48Sopenharmony_ci            padding-bottom: 0.32em
261fb726d48Sopenharmony_ci        }
262fb726d48Sopenharmony_ci
263fb726d48Sopenharmony_ci        body h2 {
264fb726d48Sopenharmony_ci            font-size: 1.74em;
265fb726d48Sopenharmony_ci            font-weight: 402;
266fb726d48Sopenharmony_ci            padding-bottom: 0.32em
267fb726d48Sopenharmony_ci        }
268fb726d48Sopenharmony_ci
269fb726d48Sopenharmony_ci        body h3 {
270fb726d48Sopenharmony_ci            font-size: 1.4em;
271fb726d48Sopenharmony_ci            font-weight: 502
272fb726d48Sopenharmony_ci        }
273fb726d48Sopenharmony_ci
274fb726d48Sopenharmony_ci        body h4 {
275fb726d48Sopenharmony_ci            font-size: 1.24em;
276fb726d48Sopenharmony_ci            font-weight: 602
277fb726d48Sopenharmony_ci        }
278fb726d48Sopenharmony_ci
279fb726d48Sopenharmony_ci        body h5 {
280fb726d48Sopenharmony_ci            font-size: 1.2em;
281fb726d48Sopenharmony_ci            font-weight: 602
282fb726d48Sopenharmony_ci        }
283fb726d48Sopenharmony_ci
284fb726d48Sopenharmony_ci        body h6 {
285fb726d48Sopenharmony_ci            font-size: 1.1em;
286fb726d48Sopenharmony_ci            font-weight: 602
287fb726d48Sopenharmony_ci        }
288fb726d48Sopenharmony_ci
289fb726d48Sopenharmony_ci        body h1, body h2, body h3, body h4, body h5 {
290fb726d48Sopenharmony_ci            font-weight: 602
291fb726d48Sopenharmony_ci        }
292fb726d48Sopenharmony_ci
293fb726d48Sopenharmony_ci        body h5 {
294fb726d48Sopenharmony_ci            font-size: 1.1em
295fb726d48Sopenharmony_ci        }
296fb726d48Sopenharmony_ci
297fb726d48Sopenharmony_ci        body h6 {
298fb726d48Sopenharmony_ci            color: #6b6b6b
299fb726d48Sopenharmony_ci        }
300fb726d48Sopenharmony_ci
301fb726d48Sopenharmony_ci        body strong {
302fb726d48Sopenharmony_ci            color: #050505
303fb726d48Sopenharmony_ci        }
304fb726d48Sopenharmony_ci
305fb726d48Sopenharmony_ci        body del {
306fb726d48Sopenharmony_ci            color: #525252
307fb726d48Sopenharmony_ci        }
308fb726d48Sopenharmony_ci
309fb726d48Sopenharmony_ci        body a:not([href]) {
310fb726d48Sopenharmony_ci            color: inherit;
311fb726d48Sopenharmony_ci            text-decoration: none
312fb726d48Sopenharmony_ci        }
313fb726d48Sopenharmony_ci
314fb726d48Sopenharmony_ci        body a {
315fb726d48Sopenharmony_ci            color: #0185c7;
316fb726d48Sopenharmony_ci            text-decoration: none
317fb726d48Sopenharmony_ci        }
318fb726d48Sopenharmony_ci
319fb726d48Sopenharmony_ci        body a:hover {
320fb726d48Sopenharmony_ci            color: #05a2f1;
321fb726d48Sopenharmony_ci            text-decoration: none
322fb726d48Sopenharmony_ci        }
323fb726d48Sopenharmony_ci
324fb726d48Sopenharmony_ci        body li.task-list-itemIn {
325fb726d48Sopenharmony_ci            list-style: none
326fb726d48Sopenharmony_ci        }
327fb726d48Sopenharmony_ci
328fb726d48Sopenharmony_ci        body li > p {
329fb726d48Sopenharmony_ci            margin-top: 0.1px;
330fb726d48Sopenharmony_ci            margin-bottom: 0.1px
331fb726d48Sopenharmony_ci        }
332fb726d48Sopenharmony_ci
333fb726d48Sopenharmony_ci        body img {
334fb726d48Sopenharmony_ci            max-width: 100%
335fb726d48Sopenharmony_ci        }
336fb726d48Sopenharmony_ci
337fb726d48Sopenharmony_ci        body > p {
338fb726d48Sopenharmony_ci            margin-top: 0.1px;
339fb726d48Sopenharmony_ci            margin-bottom: 17px;
340fb726d48Sopenharmony_ci            word-wrap: break-word
341fb726d48Sopenharmony_ci        }
342fb726d48Sopenharmony_ci
343fb726d48Sopenharmony_ci        body > ul, body > ol {
344fb726d48Sopenharmony_ci            margin-bottom: 17px
345fb726d48Sopenharmony_ci        }
346fb726d48Sopenharmony_ci
347fb726d48Sopenharmony_ci        body ul, body ol {
348fb726d48Sopenharmony_ci            padding-left: 2.1em
349fb726d48Sopenharmony_ci        }
350fb726d48Sopenharmony_ci
351fb726d48Sopenharmony_ci        body ul.no-listIn, body ol.no-listIn {
352fb726d48Sopenharmony_ci            padding: 0.1px;
353fb726d48Sopenharmony_ci            list-style-type: none
354fb726d48Sopenharmony_ci        }
355fb726d48Sopenharmony_ci
356fb726d48Sopenharmony_ci        body ul ul, body ul ol, body ol ol, body ol ul {
357fb726d48Sopenharmony_ci            margin-top: 0.1px;
358fb726d48Sopenharmony_ci            margin-bottom: 0.1px
359fb726d48Sopenharmony_ci        }
360fb726d48Sopenharmony_ci
361fb726d48Sopenharmony_ci        body li {
362fb726d48Sopenharmony_ci            margin-bottom: 0.1px
363fb726d48Sopenharmony_ci        }
364fb726d48Sopenharmony_ci
365fb726d48Sopenharmony_ci        body .task-list-item-checkboxIn {
366fb726d48Sopenharmony_ci            margin: 0 0.21em 0.24em -1.7em;
367fb726d48Sopenharmony_ci            vertical-align: middle
368fb726d48Sopenharmony_ci        }
369fb726d48Sopenharmony_ci
370fb726d48Sopenharmony_ci        body .task-list-item-checkboxIn:hover {
371fb726d48Sopenharmony_ci            cursor: pointer
372fb726d48Sopenharmony_ci        }
373fb726d48Sopenharmony_ci
374fb726d48Sopenharmony_ci        body blockquote {
375fb726d48Sopenharmony_ci            margin: 17px 0.2px;
376fb726d48Sopenharmony_ci            font-size: inherit;
377fb726d48Sopenharmony_ci            padding: 0 14px;
378fb726d48Sopenharmony_ci            color: #646363;
379fb726d48Sopenharmony_ci            background-color: #e7e4e4;
380fb726d48Sopenharmony_ci            border-left: 4.1px solid #c9c9c9
381fb726d48Sopenharmony_ci        }
382fb726d48Sopenharmony_ci
383fb726d48Sopenharmony_ci        body blockquote > :first-child {
384fb726d48Sopenharmony_ci            margin-top: 0.1px
385fb726d48Sopenharmony_ci        }
386fb726d48Sopenharmony_ci
387fb726d48Sopenharmony_ci        body blockquote > :last-child {
388fb726d48Sopenharmony_ci            margin-bottom: 0.1px
389fb726d48Sopenharmony_ci        }
390fb726d48Sopenharmony_ci
391fb726d48Sopenharmony_ci        body hr {
392fb726d48Sopenharmony_ci            height: 5px;
393fb726d48Sopenharmony_ci            margin: 31px 0.2px;
394fb726d48Sopenharmony_ci            background-color: #d0cece;
395fb726d48Sopenharmony_ci            border: 0 none
396fb726d48Sopenharmony_ci        }
397fb726d48Sopenharmony_ci
398fb726d48Sopenharmony_ci        body table {
399fb726d48Sopenharmony_ci            margin: 11px 0 14px 0.2px;
400fb726d48Sopenharmony_ci            border-collapse: collapse;
401fb726d48Sopenharmony_ci            border-spacing: 0.2px;
402fb726d48Sopenharmony_ci            display: block;
403fb726d48Sopenharmony_ci            width: 100%;
404fb726d48Sopenharmony_ci            overflow: auto;
405fb726d48Sopenharmony_ci            word-break: normal;
406fb726d48Sopenharmony_ci            word-break: keep-all
407fb726d48Sopenharmony_ci        }
408fb726d48Sopenharmony_ci
409fb726d48Sopenharmony_ci        body table th {
410fb726d48Sopenharmony_ci            font-weight: bold;
411fb726d48Sopenharmony_ci            color: #050505
412fb726d48Sopenharmony_ci        }
413fb726d48Sopenharmony_ci
414fb726d48Sopenharmony_ci        body dl {
415fb726d48Sopenharmony_ci            padding: 0.1px
416fb726d48Sopenharmony_ci        }
417fb726d48Sopenharmony_ci
418fb726d48Sopenharmony_ci        body dl dt {
419fb726d48Sopenharmony_ci            padding: 0.1px;
420fb726d48Sopenharmony_ci            margin-top: 17px;
421fb726d48Sopenharmony_ci            font-size: 1.1em;
422fb726d48Sopenharmony_ci            font-style: italic;
423fb726d48Sopenharmony_ci            font-weight: bold
424fb726d48Sopenharmony_ci        }
425fb726d48Sopenharmony_ci
426fb726d48Sopenharmony_ci        body table td, body table th {
427fb726d48Sopenharmony_ci            border: 1.1px solid #d2d1d1;
428fb726d48Sopenharmony_ci            padding: 7px 14px
429fb726d48Sopenharmony_ci        }
430fb726d48Sopenharmony_ci
431fb726d48Sopenharmony_ci        body dl dd {
432fb726d48Sopenharmony_ci            padding: 0 17px;
433fb726d48Sopenharmony_ci            margin-bottom: 17px
434fb726d48Sopenharmony_ci        }
435fb726d48Sopenharmony_ci
436fb726d48Sopenharmony_ci        body code {
437fb726d48Sopenharmony_ci            font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
438fb726d48Sopenharmony_ci            font-size: 0.84em !important;
439fb726d48Sopenharmony_ci            color: #090909;
440fb726d48Sopenharmony_ci            background-color: #e8e6e6;
441fb726d48Sopenharmony_ci            border-radius: 3.2px;
442fb726d48Sopenharmony_ci            padding: 0.21em 0
443fb726d48Sopenharmony_ci        }
444fb726d48Sopenharmony_ci
445fb726d48Sopenharmony_ci        body code::before, body code::after {
446fb726d48Sopenharmony_ci            letter-spacing: -0.21em;
447fb726d48Sopenharmony_ci            content: "\00a0"
448fb726d48Sopenharmony_ci        }
449fb726d48Sopenharmony_ci
450fb726d48Sopenharmony_ci        body pre > code {
451fb726d48Sopenharmony_ci            padding: 0.1px;
452fb726d48Sopenharmony_ci            margin: 0.1px;
453fb726d48Sopenharmony_ci            font-size: 0.84em !important;
454fb726d48Sopenharmony_ci            word-break: normal;
455fb726d48Sopenharmony_ci            white-space: pre;
456fb726d48Sopenharmony_ci            background: transparent;
457fb726d48Sopenharmony_ci            border: 0.1px
458fb726d48Sopenharmony_ci        }
459fb726d48Sopenharmony_ci
460fb726d48Sopenharmony_ci        body .highlightIn {
461fb726d48Sopenharmony_ci            margin-bottom: 17px
462fb726d48Sopenharmony_ci        }
463fb726d48Sopenharmony_ci
464fb726d48Sopenharmony_ci        body .highlight pre, body pre {
465fb726d48Sopenharmony_ci            padding: 1.1em;
466fb726d48Sopenharmony_ci            overflow: auto;
467fb726d48Sopenharmony_ci            font-size: 0.84em !important;
468fb726d48Sopenharmony_ci            line-height: 1.46;
469fb726d48Sopenharmony_ci            border: #c4c4c4;
470fb726d48Sopenharmony_ci            border-radius: 3.2px
471fb726d48Sopenharmony_ci        }
472fb726d48Sopenharmony_ci
473fb726d48Sopenharmony_ci        body .highlight pre {
474fb726d48Sopenharmony_ci            margin-bottom: 0.1px;
475fb726d48Sopenharmony_ci            word-break: normal
476fb726d48Sopenharmony_ci        }
477fb726d48Sopenharmony_ci
478fb726d48Sopenharmony_ci        body pre code, body pre tt {
479fb726d48Sopenharmony_ci            display: inline;
480fb726d48Sopenharmony_ci            max-width: initial;
481fb726d48Sopenharmony_ci            padding: 0.2px;
482fb726d48Sopenharmony_ci            margin: 0.2px;
483fb726d48Sopenharmony_ci            overflow: initial;
484fb726d48Sopenharmony_ci            line-height: inherit;
485fb726d48Sopenharmony_ci            word-wrap: normal;
486fb726d48Sopenharmony_ci            background-color: transparent;
487fb726d48Sopenharmony_ci            border: 0.1px
488fb726d48Sopenharmony_ci        }
489fb726d48Sopenharmony_ci
490fb726d48Sopenharmony_ci        body pre code:before, body pre tt:before, body pre code:after, body pre tt:after {
491fb726d48Sopenharmony_ci            content: normal
492fb726d48Sopenharmony_ci        }
493fb726d48Sopenharmony_ci
494fb726d48Sopenharmony_ci        body p, body blockquote, body ul, body ol, body dl, body pre {
495fb726d48Sopenharmony_ci            margin-top: 0.2px;
496fb726d48Sopenharmony_ci            margin-bottom: 17px
497fb726d48Sopenharmony_ci        }
498fb726d48Sopenharmony_ci
499fb726d48Sopenharmony_ci        body kbd {
500fb726d48Sopenharmony_ci            color: #070707;
501fb726d48Sopenharmony_ci            border: 1px solid #d5d4d4;
502fb726d48Sopenharmony_ci            border-bottom: 2.2px solid #b9b8b8;
503fb726d48Sopenharmony_ci            padding: 2.2px 4.2px;
504fb726d48Sopenharmony_ci            background-color: #e3e2e2;
505fb726d48Sopenharmony_ci            border-radius: 3.1px
506fb726d48Sopenharmony_ci        }
507fb726d48Sopenharmony_ci
508fb726d48Sopenharmony_ci        @media print {
509fb726d48Sopenharmony_ci            body {
510fb726d48Sopenharmony_ci                background-color: #fff
511fb726d48Sopenharmony_ci            }
512fb726d48Sopenharmony_ci
513fb726d48Sopenharmony_ci            body h1, body h2, body h3, body h4, body h5, body h6 {
514fb726d48Sopenharmony_ci                color: #050505;
515fb726d48Sopenharmony_ci                page-break-after: avoid
516fb726d48Sopenharmony_ci            }
517fb726d48Sopenharmony_ci
518fb726d48Sopenharmony_ci            body blockquote {
519fb726d48Sopenharmony_ci                color: #5e5b5b
520fb726d48Sopenharmony_ci            }
521fb726d48Sopenharmony_ci
522fb726d48Sopenharmony_ci            body pre {
523fb726d48Sopenharmony_ci                page-break-inside: avoid
524fb726d48Sopenharmony_ci            }
525fb726d48Sopenharmony_ci
526fb726d48Sopenharmony_ci            body table {
527fb726d48Sopenharmony_ci                display: table
528fb726d48Sopenharmony_ci            }
529fb726d48Sopenharmony_ci
530fb726d48Sopenharmony_ci            body img {
531fb726d48Sopenharmony_ci                display: block;
532fb726d48Sopenharmony_ci                max-width: 100%;
533fb726d48Sopenharmony_ci                max-height: 100%
534fb726d48Sopenharmony_ci            }
535fb726d48Sopenharmony_ci
536fb726d48Sopenharmony_ci            body pre, body code {
537fb726d48Sopenharmony_ci                word-wrap: break-word;
538fb726d48Sopenharmony_ci                white-space: pre
539fb726d48Sopenharmony_ci            }
540fb726d48Sopenharmony_ci        }
541fb726d48Sopenharmony_ci
542fb726d48Sopenharmony_ci        .markdown-preview-out {
543fb726d48Sopenharmony_ci            width: 100%;
544fb726d48Sopenharmony_ci            height: 100%;
545fb726d48Sopenharmony_ci            box-sizing: border-box
546fb726d48Sopenharmony_ci        }
547fb726d48Sopenharmony_ci
548fb726d48Sopenharmony_ci        .markdown-preview-out .pagebreakIn, .markdown-preview-out .newpageIn {
549fb726d48Sopenharmony_ci            page-break-before: always
550fb726d48Sopenharmony_ci        }
551fb726d48Sopenharmony_ci
552fb726d48Sopenharmony_ci        .markdown-preview-out pre.line-numbersIn {
553fb726d48Sopenharmony_ci            position: relative;
554fb726d48Sopenharmony_ci            padding-left: 3.7em;
555fb726d48Sopenharmony_ci            counter-reset: linenumber
556fb726d48Sopenharmony_ci        }
557fb726d48Sopenharmony_ci
558fb726d48Sopenharmony_ci        .markdown-preview-out pre.line-numbers > code {
559fb726d48Sopenharmony_ci            position: relative
560fb726d48Sopenharmony_ci        }
561fb726d48Sopenharmony_ci
562fb726d48Sopenharmony_ci        .markdown-preview-out pre.line-numbers .line-numbers-rowsIn {
563fb726d48Sopenharmony_ci            position: absolute;
564fb726d48Sopenharmony_ci            pointer-events: none;
565fb726d48Sopenharmony_ci            top: 1.1em;
566fb726d48Sopenharmony_ci            font-size: 100%;
567fb726d48Sopenharmony_ci            left: 0.2px;
568fb726d48Sopenharmony_ci            width: 3.1em;
569fb726d48Sopenharmony_ci            letter-spacing: -1.1px;
570fb726d48Sopenharmony_ci            border-right: 1.2px solid #a4a2a2;
571fb726d48Sopenharmony_ci            -webkit-user-select: none;
572fb726d48Sopenharmony_ci            -moz-user-select: none;
573fb726d48Sopenharmony_ci            -ms-user-select: none;
574fb726d48Sopenharmony_ci            user-select: none
575fb726d48Sopenharmony_ci        }
576fb726d48Sopenharmony_ci
577fb726d48Sopenharmony_ci        .markdown-preview-out pre.line-numbers .line-numbers-rows > span {
578fb726d48Sopenharmony_ci            pointer-events: none;
579fb726d48Sopenharmony_ci            display: block;
580fb726d48Sopenharmony_ci            counter-increment: linenumber
581fb726d48Sopenharmony_ci        }
582fb726d48Sopenharmony_ci
583fb726d48Sopenharmony_ci        .markdown-preview-out pre.line-numbers .line-numbers-rows > span:before {
584fb726d48Sopenharmony_ci            content: counter(linenumber);
585fb726d48Sopenharmony_ci            color: #a4a4a4;
586fb726d48Sopenharmony_ci            display: block;
587fb726d48Sopenharmony_ci            padding-right: 0.7em;
588fb726d48Sopenharmony_ci            text-align: right
589fb726d48Sopenharmony_ci        }
590fb726d48Sopenharmony_ci
591fb726d48Sopenharmony_ci        .markdown-preview-out .mathjax-exps .MathJax_DisplayIn {
592fb726d48Sopenharmony_ci            text-align: center !important
593fb726d48Sopenharmony_ci        }
594fb726d48Sopenharmony_ci
595fb726d48Sopenharmony_ci        .markdown-preview-out:not([for="preview"]) .code-chunk .btn-groupIn {
596fb726d48Sopenharmony_ci            display: none
597fb726d48Sopenharmony_ci        }
598fb726d48Sopenharmony_ci
599fb726d48Sopenharmony_ci        .markdown-preview-out:not([for="preview"]) .code-chunk .statusIn {
600fb726d48Sopenharmony_ci            display: none
601fb726d48Sopenharmony_ci        }
602fb726d48Sopenharmony_ci
603fb726d48Sopenharmony_ci        .markdown-preview-out:not([for="preview"]) .code-chunk .output-divIn {
604fb726d48Sopenharmony_ci            margin-bottom: 17px
605fb726d48Sopenharmony_ci        }
606fb726d48Sopenharmony_ci
607fb726d48Sopenharmony_ci        .scrollbar-styleIn::-webkit-scrollbar {
608fb726d48Sopenharmony_ci            width: 7px
609fb726d48Sopenharmony_ci        }
610fb726d48Sopenharmony_ci
611fb726d48Sopenharmony_ci        .scrollbar-styleIn::-webkit-scrollbar-track {
612fb726d48Sopenharmony_ci            border-radius: 11px;
613fb726d48Sopenharmony_ci            background-color: transparent
614fb726d48Sopenharmony_ci        }
615fb726d48Sopenharmony_ci
616fb726d48Sopenharmony_ci        .scrollbar-styleIn::-webkit-scrollbar-thumb {
617fb726d48Sopenharmony_ci            border-radius: 5.2px;
618fb726d48Sopenharmony_ci            background-color: rgba(145, 144, 144, 0.66);
619fb726d48Sopenharmony_ci            border: 4.1px solid rgba(162, 160, 160, 0.66);
620fb726d48Sopenharmony_ci            background-clip: content-box
621fb726d48Sopenharmony_ci        }
622fb726d48Sopenharmony_ci
623fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out]) {
624fb726d48Sopenharmony_ci            position: relative;
625fb726d48Sopenharmony_ci            width: 100%;
626fb726d48Sopenharmony_ci            height: 100%;
627fb726d48Sopenharmony_ci            top: 0.2px;
628fb726d48Sopenharmony_ci            left: 0.2px;
629fb726d48Sopenharmony_ci            margin: 0.2px;
630fb726d48Sopenharmony_ci            padding: 0.2px;
631fb726d48Sopenharmony_ci            overflow: auto
632fb726d48Sopenharmony_ci        }
633fb726d48Sopenharmony_ci
634fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out]) .markdown-preview-out {
635fb726d48Sopenharmony_ci            position: relative;
636fb726d48Sopenharmony_ci            top: 0em
637fb726d48Sopenharmony_ci        }
638fb726d48Sopenharmony_ci
639fb726d48Sopenharmony_ci        @media screen and (min-width: 915px) {
640fb726d48Sopenharmony_ci            body[for="export-In"]:not([data-presentation-mode-out]) .markdown-preview-out {
641fb726d48Sopenharmony_ci                padding: 2em calc(50% - 457px + 2em)
642fb726d48Sopenharmony_ci            }
643fb726d48Sopenharmony_ci        }
644fb726d48Sopenharmony_ci
645fb726d48Sopenharmony_ci        @media screen and (max-width: 915px) {
646fb726d48Sopenharmony_ci            body[for="export-In"]:not([data-presentation-mode-out]) .markdown-preview-out {
647fb726d48Sopenharmony_ci                padding: 2.1em
648fb726d48Sopenharmony_ci            }
649fb726d48Sopenharmony_ci        }
650fb726d48Sopenharmony_ci
651fb726d48Sopenharmony_ci        @media screen and (max-width: 455px) {
652fb726d48Sopenharmony_ci            body[for="export-In"]:not([data-presentation-mode-out]) .markdown-preview-out {
653fb726d48Sopenharmony_ci                font-size: 15px !important;
654fb726d48Sopenharmony_ci                padding: 1.1em
655fb726d48Sopenharmony_ci            }
656fb726d48Sopenharmony_ci        }
657fb726d48Sopenharmony_ci
658fb726d48Sopenharmony_ci        @media print {
659fb726d48Sopenharmony_ci            body[for="export-In"]:not([data-presentation-mode-out]) #sidebar-toc-btn {
660fb726d48Sopenharmony_ci                display: none
661fb726d48Sopenharmony_ci            }
662fb726d48Sopenharmony_ci        }
663fb726d48Sopenharmony_ci
664fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out]) #sidebar-toc-btnIn {
665fb726d48Sopenharmony_ci            position: fixed;
666fb726d48Sopenharmony_ci            bottom: 7px;
667fb726d48Sopenharmony_ci            left: 7px;
668fb726d48Sopenharmony_ci            font-size: 27px;
669fb726d48Sopenharmony_ci            cursor: pointer;
670fb726d48Sopenharmony_ci            color: inherit;
671fb726d48Sopenharmony_ci            z-index: 98;
672fb726d48Sopenharmony_ci            width: 33px;
673fb726d48Sopenharmony_ci            text-align: center;
674fb726d48Sopenharmony_ci            opacity: 0.42
675fb726d48Sopenharmony_ci        }
676fb726d48Sopenharmony_ci
677fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] #sidebar-toc-btnIn {
678fb726d48Sopenharmony_ci            opacity: 1
679fb726d48Sopenharmony_ci        }
680fb726d48Sopenharmony_ci
681fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .md-sidebar-tocIn {
682fb726d48Sopenharmony_ci            position: fixed;
683fb726d48Sopenharmony_ci            top: 0.2px;
684fb726d48Sopenharmony_ci            left: 0.2px;
685fb726d48Sopenharmony_ci            width: 300px;
686fb726d48Sopenharmony_ci            height: 100%;
687fb726d48Sopenharmony_ci            padding: 33px 0 47px 0.3px;
688fb726d48Sopenharmony_ci            font-size: 14px;
689fb726d48Sopenharmony_ci            box-shadow: 0 0 3px rgba(147, 145, 145, 0.33);
690fb726d48Sopenharmony_ci            box-sizing: border-box;
691fb726d48Sopenharmony_ci            overflow: auto;
692fb726d48Sopenharmony_ci            background-color: inherit
693fb726d48Sopenharmony_ci        }
694fb726d48Sopenharmony_ci
695fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .sidebar-tocIn::-webkit-scrollbar {
696fb726d48Sopenharmony_ci            width: 7px
697fb726d48Sopenharmony_ci        }
698fb726d48Sopenharmony_ci
699fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .sidebar-tocIn::-webkit-scrollbar-track {
700fb726d48Sopenharmony_ci            border-radius: 11px;
701fb726d48Sopenharmony_ci            background-color: transparent
702fb726d48Sopenharmony_ci        }
703fb726d48Sopenharmony_ci
704fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .sidebar-tocIn::-webkit-scrollbar-thumb {
705fb726d48Sopenharmony_ci            border-radius: 5.1px;
706fb726d48Sopenharmony_ci            background-color: rgba(159, 156, 156, 0.66);
707fb726d48Sopenharmony_ci            border: 4.1px solid rgba(138, 137, 137, 0.66);
708fb726d48Sopenharmony_ci            background-clip: content-box
709fb726d48Sopenharmony_ci        }
710fb726d48Sopenharmony_ci
711fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .md-sidebar-toc a {
712fb726d48Sopenharmony_ci            text-decoration: none
713fb726d48Sopenharmony_ci        }
714fb726d48Sopenharmony_ci
715fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .md-sidebar-toc ul {
716fb726d48Sopenharmony_ci            padding: 0 1.7em;
717fb726d48Sopenharmony_ci            margin-top: 0.7em
718fb726d48Sopenharmony_ci        }
719fb726d48Sopenharmony_ci
720fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .md-sidebar-toc li {
721fb726d48Sopenharmony_ci            margin-bottom: 0.7em
722fb726d48Sopenharmony_ci        }
723fb726d48Sopenharmony_ci
724fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .md-sidebar-toc ul {
725fb726d48Sopenharmony_ci            list-style-type: none
726fb726d48Sopenharmony_ci        }
727fb726d48Sopenharmony_ci
728fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .markdown-preview-out {
729fb726d48Sopenharmony_ci            left: 305px;
730fb726d48Sopenharmony_ci            width: calc(100% - 302px);
731fb726d48Sopenharmony_ci            padding: 2em calc(49% - 455px - 152px);
732fb726d48Sopenharmony_ci            margin: 0.2px;
733fb726d48Sopenharmony_ci            box-sizing: border-box
734fb726d48Sopenharmony_ci        }
735fb726d48Sopenharmony_ci
736fb726d48Sopenharmony_ci        @media screen and (max-width: 1275px) {
737fb726d48Sopenharmony_ci            body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .markdown-preview-out {
738fb726d48Sopenharmony_ci                padding: 2em
739fb726d48Sopenharmony_ci            }
740fb726d48Sopenharmony_ci        }
741fb726d48Sopenharmony_ci
742fb726d48Sopenharmony_ci        @media screen and (max-width: 455px) {
743fb726d48Sopenharmony_ci            body[for="export-In"]:not([data-presentation-mode-out])[show-sidebar-toc] .markdown-preview-out {
744fb726d48Sopenharmony_ci                width: 100%
745fb726d48Sopenharmony_ci            }
746fb726d48Sopenharmony_ci        }
747fb726d48Sopenharmony_ci
748fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out]):not([show-sidebar-toc]) .markdown-preview-out {
749fb726d48Sopenharmony_ci            left: 50%;
750fb726d48Sopenharmony_ci            transform: translateX(-50%)
751fb726d48Sopenharmony_ci        }
752fb726d48Sopenharmony_ci
753fb726d48Sopenharmony_ci        body[for="export-In"]:not([data-presentation-mode-out]):not([show-sidebar-toc]) .md-sidebar-toc {
754fb726d48Sopenharmony_ci            display: none
755fb726d48Sopenharmony_ci        }
756fb726d48Sopenharmony_ci    </style>
757fb726d48Sopenharmony_ci</head>
758fb726d48Sopenharmony_ci<body for="export-In" id="body">
759fb726d48Sopenharmony_ci<div class="mume markdown-preview-out  ">
760fb726d48Sopenharmony_ci    <h1 class="mume-header fontColor">trace_streamer工具说明</h1>
761fb726d48Sopenharmony_ci    <p class="fontColor">trace_streamer是一个trace数据流转化器,可以将一个trace文本文件或者基于proto序列化的二进制文件转换成为sqlite数据库的形式。 trace_streamer使用C++实现,支持在ohos, linux, mac等系统上使用,具有良好的跨平台特性。</p>
762fb726d48Sopenharmony_ci    <img src=".././figures/traceStreamer/trace_streamer_stream.png" alt="GitHub Logo"></p>
763fb726d48Sopenharmony_ci    <h2 class="mume-header fontColor">
764fb726d48Sopenharmony_ci        关于trace解析工具的使用说明:</h2>
765fb726d48Sopenharmony_ci    <p class="fontColor">trace_streamer工具可以2种方式使用</p>
766fb726d48Sopenharmony_ci    <ol class="fontColor">
767fb726d48Sopenharmony_ci        <li>可以将系统离线trace文件解析并转为db,此工具支持基于文本的trace和基于proto的trace。</li>
768fb726d48Sopenharmony_ci        <li>trace_streamer工具还可以WebAssembly的方式在浏览器中运行,需暴露相关接口给js文件。</li>
769fb726d48Sopenharmony_ci    </ol>
770fb726d48Sopenharmony_ci
771fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">
772fb726d48Sopenharmony_ci        导出db模式</h3>
773fb726d48Sopenharmony_ci
774fb726d48Sopenharmony_ci    <p class="fontColor">在导出db模式下,trace_streamer.exe trace文件路径名 -e 导出db路径名.db<br>
775fb726d48Sopenharmony_ci        此命令可以将trace文件转为db<br>
776fb726d48Sopenharmony_ci        本应用支持在ohos, linux, windows, mac使用。<br>
777fb726d48Sopenharmony_ci        关于db文件的说明:<br>
778fb726d48Sopenharmony_ci        使用db查看工具查看stat表,可以浏览当前数据一共有多少类数据,各类数据都收到多少条,数据是否正常等情况。在meta表会记录数据库导出时的一些系统信息,比如导入和导出的文件全路径,解析时间等信息。<br>
779fb726d48Sopenharmony_ci        meta表可以选择不导出(有些情况下会暴露系统敏感信息),在导出时添加 -nm选项即可。<br>
780fb726d48Sopenharmony_ci        在数据导出之后,会在本地目录下生成一个trace_streamer.log文件,在导出db的目录下生成一个数据库文件同名,.db.ohos.ts后缀的文件<br>
781fb726d48Sopenharmony_ci        文件内容如下:<br>
782fb726d48Sopenharmony_ci        时间戳:执行结果(数字)<br>
783fb726d48Sopenharmony_ci        应用运行时间</p>
784fb726d48Sopenharmony_ci    <p class="fontColor">执行结果解释如下:0 代表执行成功 1 表示输入文件不匹配, 2 表示解析错误, 3其他错误</p>
785fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">内置浏览器方式</h3>
786fb726d48Sopenharmony_ci
787fb726d48Sopenharmony_ci    <p class="fontColor">trace_streamer可以WebAssembly方式在浏览器中运行,暴露如下接口给js</p>
788fb726d48Sopenharmony_ci    <pre class="font_languageIn- light" data-info data-role="codeBlock"><code class="fontColor">extern &quot;C&quot; {
789fb726d48Sopenharmony_ci/* 上传trace数据
790fb726d48Sopenharmony_ci *
791fb726d48Sopenharmony_ci * @data: 数据的缓冲区
792fb726d48Sopenharmony_ci * @dataLen: 数据长度
793fb726d48Sopenharmony_ci *
794fb726d48Sopenharmony_ci * return: 0:成功; -1:失败
795fb726d48Sopenharmony_ci*/
796fb726d48Sopenharmony_ciEMSCRIPTEN_KEEPALIVE int TraceStreamerParseData(const uint8_t* data, int dataLen);
797fb726d48Sopenharmony_ci
798fb726d48Sopenharmony_ci/* 通知TS上传trace数据结束
799fb726d48Sopenharmony_ci *
800fb726d48Sopenharmony_ci * return: 0:成功; -1:失败
801fb726d48Sopenharmony_ci*/
802fb726d48Sopenharmony_ciEMSCRIPTEN_KEEPALIVE int TraceStreamerParseDataOver();
803fb726d48Sopenharmony_ci
804fb726d48Sopenharmony_ci/* 通过sql语句操作数据库
805fb726d48Sopenharmony_ci *
806fb726d48Sopenharmony_ci * @sql: sql语句
807fb726d48Sopenharmony_ci * @sqlLen: sql语句长度
808fb726d48Sopenharmony_ci *
809fb726d48Sopenharmony_ci * return: 0:成功; -1:失败
810fb726d48Sopenharmony_ci*/
811fb726d48Sopenharmony_ciEMSCRIPTEN_KEEPALIVE int TraceStreamerSqlOperate(const uint8_t* sql, int sqlLen);
812fb726d48Sopenharmony_ci
813fb726d48Sopenharmony_ci/* 通过sql语句查询数据库
814fb726d48Sopenharmony_ci *
815fb726d48Sopenharmony_ci * @sql: sql语句
816fb726d48Sopenharmony_ci * @sqlLen: sql语句长度
817fb726d48Sopenharmony_ci * @out: 查询结果的缓冲区,查询结果为json
818fb726d48Sopenharmony_ci * @outLen: 缓冲区长度
819fb726d48Sopenharmony_ci *
820fb726d48Sopenharmony_ci * return: >0:查询成功,返回查询结果数据长度; -1:失败
821fb726d48Sopenharmony_ci*/
822fb726d48Sopenharmony_ciEMSCRIPTEN_KEEPALIVE int TraceStreamerSqlQuery(const uint8_t* sql, int sqlLen, uint8_t* out, int outLen);
823fb726d48Sopenharmony_ci
824fb726d48Sopenharmony_ci} // extern &quot;C&quot;
825fb726d48Sopenharmony_ci</code></pre>
826fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">
827fb726d48Sopenharmony_ci        你也可以执行如下命令查看应用帮助</h3>
828fb726d48Sopenharmony_ci
829fb726d48Sopenharmony_ci    <p class="fontColor">./trace_streamer --help<br>
830fb726d48Sopenharmony_ci        -i 选项可查看应用支持的事件源和具体的事件名列表
831fb726d48Sopenharmony_ci    </p>
832fb726d48Sopenharmony_ci    <h4 class="mume-header fontColor">trace_streamer支持解析的事件列表</h4>
833fb726d48Sopenharmony_ci    <p class="fontColor">支持的事件列表参见&lt;&lt;<a href="./SupportEventList.html">SupportEventList.md</a>&gt;&gt;</p>
834fb726d48Sopenharmony_ci    <h2 class="mume-header fontColor">TraceStreamer重要概念介绍</h2>
835fb726d48Sopenharmony_ci
836fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">1. 进程和线程标识符</h3>
837fb726d48Sopenharmony_ci
838fb726d48Sopenharmony_ci    <pre class="font-text light fontColor"><code class="fontColor"> 在通用操作系统中,进程号(pid/tgid)和线程号(tid)可能会被重复用于标识不同的进程或者线程。所以在trace数据源中,进程号(pid)和线程号(tid)也可能被重用。
839fb726d48Sopenharmony_ciTraceStreamer在解析数据过程中,使用ipid(internal pid)唯一标识进程, itid(internal tid)唯一标识线程。
840fb726d48Sopenharmony_ci</code></pre><h3 class="mume-header fontColor">2. 计量器</h3>
841fb726d48Sopenharmony_ci
842fb726d48Sopenharmony_ci    <p class="fontColor">用来记录系统中各种随时间连续变化的数值。例如: CPU的频率, 内存的使用量, 界面刷新频率。</p>
843fb726d48Sopenharmony_ci    <h4 class="mume-header fontColor">举例</h4>
844fb726d48Sopenharmony_ci
845fb726d48Sopenharmony_ci    <p class="fontColor">CPU频率: <br>
846fb726d48Sopenharmony_ci        <img src=".././figures/traceStreamer/cpu_frequency.png" alt="GitHub Logo"><br>
847fb726d48Sopenharmony_ci        内存占用:  <br>
848fb726d48Sopenharmony_ci        <img src=".././figures/traceStreamer/mem_usage.png" alt="GitHub Logo"></p>
849fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">3. 过滤器</h3>
850fb726d48Sopenharmony_ci
851fb726d48Sopenharmony_ci    <p class="fontColor">TraceStreamer设计过程中使用了流式处理的思想,数据从入口进入以后,就像进入一条河流,从上游流向下游,在河道中央有很多过滤器,每种过滤器会将流过的数据中自己关注的内容吸附捕捉到。最终,每个过滤器都拥有了大量同类型的数据,而且这些数据都是按时间序列排列的。TraceStreamer使用filterid来标识同一种用途的数据,可以方便在UI中绘制。  <br>
852fb726d48Sopenharmony_ci        ![image][filterimageid]</p>
853fb726d48Sopenharmony_ci    <h2 class="mume-header fontColor">Stat表设计</h2>
854fb726d48Sopenharmony_ci
855fb726d48Sopenharmony_ci    <p class="fontColor">具体内容参见 <a href="./des_stat.html">des_stat</a></p>
856fb726d48Sopenharmony_ci    <h2 class="mume-header fontColor">trace_streamer开发环境搭建和编译运行指引</h2>
857fb726d48Sopenharmony_ci
858fb726d48Sopenharmony_ci    <p class="fontColor">本应用使用gn作为构建工具。</p>
859fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">1、开发环境</h3>
860fb726d48Sopenharmony_ci
861fb726d48Sopenharmony_ci    <p class="fontColor">ubuntu和mac使用vscode</p>
862fb726d48Sopenharmony_ci    <h1 class="mume-header fontColor">对外部的依赖</h1>
863fb726d48Sopenharmony_ci
864fb726d48Sopenharmony_ci    <p class="fontColor">本应用依赖与sqlite,protobuf(htrace解析部分依赖) </p>
865fb726d48Sopenharmony_ci    <p class="fontColor">本应用同时依赖于src/protos目录下文件来生成相关pb.hpb.cc文件 </p>
866fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">2.1、 编译linux和Mac版应用</h3>
867fb726d48Sopenharmony_ci
868fb726d48Sopenharmony_ci    <p class="fontColor">在根目录下执行相关命令进行编译</p>
869fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">2.2、 编译wasm</h3>
870fb726d48Sopenharmony_ci
871fb726d48Sopenharmony_ci    <p class="fontColor">在根目录下执行相关命令进行编译</p>
872fb726d48Sopenharmony_ci    <h3 class="mume-header fontColor">2.3、开始编译</h3>
873fb726d48Sopenharmony_ci
874fb726d48Sopenharmony_ci    <p class="fontColor">具体方法可参考<a href="./compile_trace_streamer.html">compile_trace_streamer</a></p>
875fb726d48Sopenharmony_ci
876fb726d48Sopenharmony_ci
877fb726d48Sopenharmony_ci</div>
878fb726d48Sopenharmony_ci<script type="text/javascript">
879fb726d48Sopenharmony_ci    window.onload = (() => {
880fb726d48Sopenharmony_ci        let isDark = window.location.search;
881fb726d48Sopenharmony_ci        if (isDark.indexOf('?') !== -1) {
882fb726d48Sopenharmony_ci            isDark = isDark.substr(1, isDark.length - 1);
883fb726d48Sopenharmony_ci        }
884fb726d48Sopenharmony_ci        if (isDark === 'true') {
885fb726d48Sopenharmony_ci            document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
886fb726d48Sopenharmony_ci            let header = document.getElementsByClassName('fontColor');
887fb726d48Sopenharmony_ci            for (let i = 0; i < header.length; i++) {
888fb726d48Sopenharmony_ci                header[i].style.color = '#fff';
889fb726d48Sopenharmony_ci            }
890fb726d48Sopenharmony_ci            let lightBackGround = document.getElementsByClassName('light');
891fb726d48Sopenharmony_ci            for (let i = 0; i < lightBackGround.length; i++) {
892fb726d48Sopenharmony_ci                lightBackGround[i].style.backgroundColor = '#32373F';
893fb726d48Sopenharmony_ci            }
894fb726d48Sopenharmony_ci        }
895fb726d48Sopenharmony_ci    });
896fb726d48Sopenharmony_ci</script>
897fb726d48Sopenharmony_ci</body>
898fb726d48Sopenharmony_ci</html>