0

我正在运行一个程序,我想检查当有条件跳转时是否采取了分支。

我听说 IntelPT 可以使用 pt_qry_cond_branch()函数来做到这一点。但是,我看不到任何有关如何使用它的示例。有人对此有任何想法吗?

例如,我将如何使用 Intel PT 来查看此函数中发生了什么:

foo:
    rdrand  eax
    cmp     eax, 1<<29
    ja    .taken
    nop
.taken:
    xor     eax, eax
    ret

我想知道如何为此使用 Intel-PT,而不是在nop或其他检测数据的方式上设置断点以自己查找数据并计算分支条件。

4

1 回答 1

1

在指令跟踪中可以直接看到您可以使用 IntelPT 支持记录,例如通过perf在 Linux 上。您将nop在跟踪中看到或看不到。我不确定有什么pt_qry_cond_branch()贡献——它不只是跟踪解码器库的一部分,它将对记录的跟踪进行后处理吗?

于 2018-02-14T22:47:52.550 回答