libipt
ptdump
ptdump工具将Intel PT文件作为输入,并以易于阅读的形式转储数据包。 最左边的数字是十六进制英特尔PT数据包流中的偏移量。 随后是数据包操作码和有效负载。
ptdump filename.pt
ptxed
使用ptxed重建执行流程。 为此,需要Intel PT文件以及相应的二进制映像。 使用原始二进制文件时,需要在.ptt文件中指定org指令指定的加载地址。
Ptxed按执行顺序打印反汇编的指令以及括在方括号中的状态消息。
ptxed --pt loop-tnt.pt --raw loop-tnt.bin:0x100000
libipt搭建
配置文件
默认情况下,仅构建解码器库。 通过将各个cmake变量设置为ON,可以启用其他组件。
以下可选组件可用:
PTUNIT A simple unit test framework.
A collection of unit tests for libipt.
PTDUMP A packet dumper example.
PTXED A trace disassembler example.
PTTC A trace test generator.
SIDEBAND A sideband correlation library
PEVENT Support for the Linux perf_event sideband format.
This feature requires the linux/perf_event.h header.
依赖
为了构建ptxed,必须指定XED库和XED头文件的位置。
XED_INCLUDE Path to the directory containing the XED header files.
XED_LIBDIR Path to the directory containing the XED library.
从github使用XED时,各个目录位于安装目录(默认值:kits / xed-install-date-os-cpu)中,头文件位于include / xed中。 请参考XED树中的自述文件,了解如何构建XED。
在linux或者macOS上
我们建议使用树外构建。 首先创建目标目录并导航至该目录:
mkdir -p /path/to/dest
cd /path/to/dest
在这里,以顶级源目录作为参数调用cmake。 您可能已经将部分或全部cmake变量作为cmake的参数传递了。 不带参数的cmake使用默认值。
cmake /path/to/src
如果尚未传递XED_INCLUDE或XED_LIBDIR的值,则要构建ptxed,需要立即配置它们。 您也可以在以后随时使用此命令更改配置。
make edit_cache
配置cmake缓存后,您可以使用以下任一方法构建特定目标或所有目标:
make <target>
make
使用帮助目标牌来了解可用的选项:
make help