Часть «Содержимое» показывает неверные значения для трассировки CTF в Eclipse Trace Compass - PullRequest
0 голосов
/ 17 января 2020

Я написал python скрипт для преобразования определенного вида трассировки в CTF. Тип события отображается, но поля внутри части «Содержимое» отображаются неправильно. У меня есть два поля, идентификатор и имя. Это функция log_event:

def log_event(self, ts, event_id, event_name, event_type):
        self.resultfile.write(struct.pack("=Q", ts)) #timestamp
        self.resultfile.write(struct.pack("=B", 0x31))  
        self.resultfile.write(struct.pack("=I", event_id))      # id
        self.resultfile.write(event_name.encode(encoding='utf-8')) #name
        self.resultfile.write(struct.pack("=B", 0x0))  # null terminate string

Структура части событий в файле метаданных выглядит следующим образом:

event {
       name = "InterruptType";
       id = 77;
       stream_id = 0;
       fields := struct {
                    integer { size = 32; align = 8; signed = 0; encoding = none; base = 10; } _id;
                    string _name;
                  };
      };

Все события в файле метаданных имеют одинаковую структуру только с изменение имени и идентификатора.

Когда я открываю файл в трассировке компаса, поле «Содержимое» выглядит следующим образом:

Timestamp             Channel     CPU       Event type  Contents      
05:30:00.000 000 00   channel0_0  76488448  TaskType    id=0, name=     

имя не отображается в некоторых и в некоторые из них отображаются в некоем двоичном формате, который непостижим. Кроме того, идентификаторы, которые отображаются неверно.

...