developtools_hiperf/proto/report_sample.proto
zhangcui 11e2e0bc5d
add oaded func base vaddr in proto report file
Signed-off-by: zhangcui <zhangcui11@huawei.com>
2022-09-21 08:11:08 +00:00

95 lines
2.4 KiB
Protocol Buffer

// Copyright (c) 2021-2022 Huawei Device Co., Ltd.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// report_sample.proto format:
// char magic[10] = "HIPERF_PB_";
// LittleEndian16(version) = 1;
// LittleEndian32(sample_size)
// message Record(sample)
// LittleEndian32(sample_size)
// message Record(sample)
// ...
// LittleEndian32(sample_size)
// message Record(sample)
// LittleEndian32(0)
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package OHOS.Developtools.Hiperf.Proto;
message CallStackSample {
optional uint64 time = 1;
optional uint32 tid = 2;
message CallStackFrame {
// virtual address of the instruction in symbols file
optional uint64 symbols_vaddr = 1;
// index of index of SymbolTableFile::id, base from 0
optional uint32 symbols_file_id = 2;
// index of SymbolTableFile::symbol_name, base from 0
// -1 means not found
optional int32 function_name_id = 3;
// loaded function base vaddr
optional uint64 loaded_vaddr = 4;
}
repeated CallStackFrame callStackFrame = 3;
// not include lost
optional uint64 event_count = 4;
// index of ReportInfo::config_name
optional uint32 config_name_id = 5;
}
message SampleStatistic {
optional uint64 count = 1;
optional uint64 lost = 2;
}
message SymbolTableFile {
// unique id , start from 0
optional uint32 id = 1;
// symbols file path, like developtools/hiperf/hiperf
optional string path = 2;
// function symbol table of the file (always mangled).
repeated string function_name = 3;
}
message VirtualThreadInfo {
optional uint32 tid = 1;
optional uint32 pid = 2;
optional string name = 3;
}
message ReportInfo {
repeated string config_name = 1;
optional string workload_cmd = 2;
}
message HiperfRecord {
oneof RecordType {
CallStackSample sample = 1;
SampleStatistic statistic = 2;
SymbolTableFile file = 3;
VirtualThreadInfo thread = 4;
ReportInfo info= 5;
}
}