Home | History | Annotate | Download | only in simpleperf
      1 // The file format generated by report_sample.proto is as below:
      2 // LittleEndian32(record_size_0)
      3 // message Record(record_0) (having record_size_0 bytes)
      4 // LittleEndian32(record_size_1)
      5 // message Record(record_1) (having record_size_1 bytes)
      6 // ...
      7 // LittleEndian32(record_size_N)
      8 // message Record(record_N) (having record_size_N bytes)
      9 // LittleEndian32(0)
     10 
     11 syntax = "proto2";
     12 option optimize_for = LITE_RUNTIME;
     13 package simpleperf_report_proto;
     14 option java_package = "com.android.tools.profiler.proto";
     15 option java_outer_classname = "SimpleperfReport";
     16 
     17 message Sample {
     18   optional uint64 time = 1;
     19   optional int32 thread_id = 2;
     20 
     21   message CallChainEntry {
     22     // virtual address of the instruction in elf file
     23     optional uint64 vaddr_in_file = 1;
     24 
     25     // index of the elf file containing the instruction
     26     optional uint32 file_id = 2;
     27 
     28     // symbol_id refers to the name of the function containing the instruction.
     29     // If the function name is found, it is a valid index in the symbol table
     30     // of File with 'id' field being file_id, otherwise it is -1.
     31     optional int32 symbol_id = 3;
     32   }
     33 
     34   repeated CallChainEntry callchain = 3;
     35 }
     36 
     37 message LostSituation {
     38   optional uint64 sample_count = 1;
     39   optional uint64 lost_count = 2;
     40 }
     41 
     42 message File {
     43   // unique id for each file, starting from 0, and add 1 each time.
     44   optional uint32 id = 1;
     45 
     46   // file path, like /system/lib/libc.so.
     47   optional string path = 2;
     48 
     49   // symbol table of the file.
     50   repeated string symbol = 3;
     51 }
     52 
     53 message Record {
     54   oneof record_data {
     55     Sample sample = 1;
     56     LostSituation lost = 2;
     57     File file = 3;
     58   }
     59 }