【问题标题】:Intel Pin master threadIntel Pin 主线程
【发布时间】:2018-04-03 14:53:54
【问题描述】:

有没有办法使用英特尔 PIN 来定位主线程?我有一个 C 应用程序,我在其中创建了一些 pthread,并希望在 Pin 中对它们进行一些分析。我有一个 PIN_AddThreadStartFunction(),它是在创建线程时调用的检测例程。 Pintool 是用 C++ 编写的。

还可以通过主线程从 PIN 域知道是否创建了多少线程?

【问题讨论】:

  • C != C++。仅使用您正在使用的语言进行标记,除非两者都实际相关。
  • 抱歉在上面添加了编辑。 Pintool 使用 C++ 编写,应用程序使用 C。
  • 您认为什么是“主线程”? POSIX 线程和内置 C11 线程都知道线程是主线程的概念。
  • 您已经在拦截新线程的创建。在该例程中,您可以跟踪您需要什么。
  • @alk 主线程是我的应用程序 C 程序的主要功能。因此,如果我创建 5 个 pthread,那么我的主程序总共有 6 个线程。

标签: c++ c multithreading intel-pin


【解决方案1】:

PIN_AddThreadStartFunction 例程的文档说,“即使对于应用程序的根(初始)线程”也会调用回调。这就是你识别主线程的方式,或者你称之为主线程。它将是第一个调用 THREAD_START_CALLBACK 的。这也是您了解创建了多少线程的方法。您只需在同一个回调中自己枚举它们。

【讨论】:

    猜你喜欢
    • 2012-12-01
    • 2015-08-15
    • 2018-08-08
    • 2020-01-04
    • 2015-06-25
    • 2023-01-04
    • 2016-05-30
    • 2018-04-22
    • 2020-10-27
    相关资源
    最近更新 更多