Как прочитать двоичный вывод dbg в файле?

#erlang

#erlang

Вопрос:

Я отслеживал с помощью dbg свою систему. Я использовал

 dbg:trace_port(file,{"/tmp/trace",wrap,atom_to_list(node()),10000000,20})
  

теперь у меня есть пара двоичных файлов.

Никогда по-настоящему не использовал эти двоичные дампы.. Как их читать? рб? disk_log? Как запустить их, чтобы увидеть файл журнала?

Ответ №1:

Сначала вы используете trace_port для получения PortFun вот так :

1> PortFun = dbg:trace_port(file,{"/tmp/trace",wrap,atom_to_list(node()),10000000,20}).

Затем используйте dbg: tracer для запуска трассировщика, который будет маршрутизировать сообщения :

2> dbg:tracer(port, PortFun).

Вывод трассировки может быть получен с помощью trace_client :

1> Pid = dbg:trace_client(файл, FileName).
..
вывод dbg здесь...
..
2> dbg:stop_trace_client(Pid).

Ответ №2:

Я сам этого не пробовал, но dbg:trace_client/2 похоже, что он может прочитать файл.

Ответ №3:

В дополнение к вышесказанному, вы также можете попробовать et_viewer:file/1, который покажет трассировку в окне, где вы можете просматривать, например, отдельные вызовы, один за другим.

Примечание: Вертикальная прокрутка в этом окне не работала должным образом в моей системе, поэтому я просто скопировал текст и проверил его в редакторе.