pthread_create 的钩子

2024-03-07

是否有(在 glibc-2.5 及更新版本中)为 pthread_create 定义钩子的方法?

有很多二进制应用程序,我想编写一个动态库通过 LD_PRELOAD 加载

我可以在 main (“属性构造函数”)的入口处添加钩子,但是如何强制我的代码在线程函数运行之前在每个线程中执行。


这个答案显示如何介入 https://stackoverflow.com/questions/3707358/get-all-the-thread-id-created-with-pthread-created-within-an-process/3709027#3709027pthread_create。 (注意:它可以在 64 位程序中正常工作,但不能在 32 位程序中正常工作。)

一旦你插入pthread_create,你就可以让它调用你自己的函数,它会做你想做的任何事情,然后调用用户传递给pthread_create的原始函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pthread_create 的钩子 的相关文章

  • mingw 中的 libpthread 找不到库

    我正在尝试使用 mingw 编译以下程序 include
  • 如何为钩子创建蹦床函数

    我对挂钩很感兴趣 我决定看看是否可以挂钩一些函数 我对使用 detours 这样的库不感兴趣 因为我想拥有自己做的经验 通过我在互联网上找到的一些资源 我能够创建下面的代码 这是基本的 但效果还不错 然而 当挂钩由多个线程调用的函数时 它被
  • 在Linux中使用命令行检查单个线程优先级

    我可以通过转到 proc pidof task 并给出来查看应用程序中使用的线程数 猫的状态 有没有办法使用命令检查Linux中各个线程的优先级 Regards Learner 运行 ps m l 它将列出所有线程和特定 PID 的优先级
  • 在 Linux 上以 root 身份调用 SCHED_FIFO 线程的 pthread_create() 时获取 EPERM

    我试图在 Linux 系统上以 SCHED FIFO 或 SCHED RR 策略作为 root 生成线程 但我对 pthread create 的调用返回 1 EPERM pthread create 的手册页指出 EPERM 指示 调用者
  • 每个进程的最大线程数 - sysconf(_SC_THREAD_THREADS_MAX) 失败

    我试图找到 UNIX 机器上每个进程的最大线程数 并编写下面的代码来使用 sysconf include
  • 处理segfault信号SIGSEGV需要使用siginfo_t确定segfault的原因

    我正在为 pthread 库制作一个包装器 它允许每个线程拥有自己的一组非共享内存 现在 如果任何线程尝试读取另一个线程的数据 程序就会出现段错误 这很好 我可以用叹息者抓住它并打电话pthread exit 并继续执行该程序 但并不是所有
  • 我的线程可以帮助操作系统决定何时将其上下文切换吗?

    我正在 Linux 上用 C 开发一个线程应用程序 它试图实现实时 根据心跳执行操作 或者尽可能接近实时 在实践中 我发现操作系统正在交换我的线程 并导致切换时延迟长达十分之一秒 从而导致心跳不规则 有没有一种方法可以让我的线程向操作系统暗
  • POSIX 线程何时取消不是立即的?

    POSIX 指定了两种线程取消类型 PTHREAD CANCEL ASYNCHRONOUS and PTHREAD CANCEL DEFERRED 通过设置pthread setcanceltype 3 确定何时pthread cancel
  • 使用 pthread_create 时出现 valgrind 内存泄漏错误

    我正在使用 pthread 库编写一个程序 当我使用命令运行程序时valgrind leak check full 我得到以下错误描述 11784 11784 HEAP SUMMARY 11784 in use at exit 4 952
  • Android 上的 pthread_create 警告

    打电话后pthread create函数我收到下一条消息 W libc 26409 pthread create sched setscheduler 调用失败 不允许操作 用于创建线程的代码是 pthread attr t threadA
  • pre_controller 钩子不会加载像 docs state 这样的基类?

    根据此处的 Codeigniter 文档 http ellislab com codeigniter user guide general hooks html http ellislab com codeigniter user guid
  • 多线程 - 在数组中我应该保护什么?

    我正在编写一些具有全局数组的代码 该数组可以由两个线程访问以进行读写目的 读取或写入一系列索引时不会进行批处理 因此我试图弄清楚是否应该锁定整个数组或仅锁定我当前正在使用的数组索引 最简单的解决方案是将数组视为 CS 并在其周围放置一个大锁
  • c++11 #include 给出编译错误

    尝试从已编译的源文件创建目标文件时出现编译错误 我正在使用 c 11 附带的标头 我还使用 C 模式识别库和其他几个包含的库 我所做的只是添加 include
  • 如何在c中创建信号量?

    我正在尝试重新创建一个 黑盒 库 在我的计算机科学课程中 当我们应该使用信号量时 在我们的纸质期末考试中 我们会得到一个 sem h 文件 有 3 个函数 一个用于创建具有初始数量令牌的新信号量 一个用于从信号量中取出令牌 一个用于将令牌放
  • Mac/iPhone:有没有一种方法可以在不使用 Objective-C 的情况下获取线程标识符?

    有没有一种方法可以获取当前正在运行的线程的任何类型的线程标识符 而无需借助 Objective C 的 NSThread 我正在改进我们的自定义调试跟踪系统以正确处理多个线程 对于跟踪输出的每一行 我想打印线程 ID 或线程名称 线程可以通
  • valgrind 检测到分离 pthread 的数据争用

    我正在创建两个detached线程 pthread attr t tha1 void fun1 void return 0 void fun2 void return 0 int main pthread t th1 th2 pthread
  • Android应用程序:java / JNI调用挂钩策略

    我的目标是检测 AOSP 以便动态记录来自目标应用程序的所有 java 或 JNI 调用 带或不带参数和返回值 我不想修改应用程序 这就是我想要修改 Android 源代码的原因 我对 AOSP 及其众多库和框架不是很有经验 所以我正在寻求
  • 完成后关闭线程

    完成后如何关闭线程 比如确保没有任何东西再打开或运行 到目前为止我知道如何打开它 但是 不知道如何正确关闭它 int iret1 pthread t thread1 char message1 void multithreading1 vo
  • 低级挂钩/SetWindowsHookEx lParam 自动重复?

    在这里阅读 Windows PC 上如何实现键盘自动重复 https stackoverflow com questions 876852 how is keyboard auto repeat implemented on a windo
  • C# - 挂钩现有 COM 对象

    假设我们有一个现有进程 或应用程序 它从 ocx 文件 例如 MyCOMLibrary ocx 调用 COM 对象 有没有办法编写一个 C 库来精确复制 ocx 文件 这样原始应用程序就可以调用您的 C 代码而不是原始 COM 对象 当然

随机推荐

  • v-model 不支持输入类型=“文件”

    我不能使用v model对于文件输入 Vue 说我必须使用v on change 好的 我可以使用v on change 但是如何将输入文件的 内容 绑定到data财产 假设我想将它绑定到一个组件中this file export defa
  • 片段中的片段不刷新

    这是我的应用程序 带有片段 左侧有一个ListView 您可以在其中进行选择 如果您选择了右侧之一 则加载一个片段并将选项卡添加到 ActionBar 有这样的代码 import java util ArrayList import and
  • 实现多个用户角色

    我使用 state machine 取得了巨大的成功 并且喜欢它通过几行代码动态创建的类方法 但是 我不确定如何继续我正在创建的系统 我目前正在开发一个用户具有多种角色的系统 所以这并不像拥有一个状态来自的用户那么简单未证实 to 确认的然
  • php cURL 脚本在打印返回字符串时运行两次

    我有以下脚本 在远程 php 脚本中 一条记录被添加到数据库表中 当我在这个脚本中留下最后一行 print html 时 添加了 2 条记录 当我省略该行时 仅添加一条记录 但显然我没有任何输出 如果我将输出写入文件 则仅添加一条记录 输出
  • 无法加载类型“MediatR.ServiceFactory”

    我正在创建一个 Api 并且也在使用 mediatR 我已经创建了命令 查询 处理程序 但是当我尝试启动我的 Api 时 我在程序类中收到此错误消息 Could not load type MediatR ServiceFactory fr
  • Keras:一维输入的卷积层

    我无法为一维输入向量构建 CNN 输入值示例 df x iloc 300 Out 33 0 0 571429 1 1 000000 2 0 971429 3 0 800000 4 1 000000 5 0 142857 6 0 657143
  • 如何在 Cypress.io 中等待 WebSocket STOMP 消息

    在我的一项测试中 我想等待 WebSocket STOMP 消息 Cypress io 可以做到这一点吗 如果您要访问的 websocket 是由您的应用程序建立的 您可以遵循以下基本过程 获取参考WebSocket来自测试内部的实例 将事
  • jQuery插件回调函数参数

    我正在寻找一种更好的方法来访问 管理插件回调函数内的数据 我想做与 jQuery UI 相同的事情 用户界面示例 我想如何做到这一点 http api jqueryui com sortable http api jqueryui com
  • Perl 单行代码匹配所有出现的正则表达式

    对于类似这样的多行文本 views panes gw hero small site placement panel pane 1 1 a 0 a 10 s 14 override title i 1 s 19 override title
  • 使用“is”来命名布尔变量是不好的做法吗?

    现在命名以 is 开头的布尔值是不好的做法吗 我的经理认为 isAnything 已经过时且糟糕的做法 这是真的 myManager isLame correct incorrect 它在很多语言中都经常使用 但我不知道是否可以肯定地说它是
  • 团队中审批应用程序的 API - 是否有任何其他 API 可用于团队中新的审批应用程序?

    是否有任何 REST API 可用于团队中的新审批应用程序 在 Microsoft Teams 中发送 接收 管理和共享批准 您创建 管理和共享的所有系统的审批中心 能够在 Microsoft Teams 中直接查看并采取行动 快速完成工作
  • Python Matplotlib 动画帧重叠

    I am working on my orbit program and I have currently only animated the moon with a downward y velocity of 1023 The anim
  • 实体框架 - 对象上下文的关闭

    在使用 EFProfiler 顺便说一句 绝对是很棒的工具 对我们的一些实体框架应用程序进行分析后 似乎在大多数情况下 所有对象上下文都没有关闭 例如 在本地运行后 EF Profiler 告诉我有326对象上下文已打开 但只有 1 个被关
  • Keras 自定义损失函数不打印张量值

    我正在编写一个简单的损失函数 其中我必须将张量转换为 numpy 数组 这是必需的 我只是想打印张量的值 但收到此错误 张量 loss activation 4 loss Print 0 shape 224 224 2 数据类型 float
  • 如何通过 Mercurial 命令行获取所有关闭的分支?

    在命令行中 我可以通过以下方式获取没有闭合分支的所有头 hg heads 我还可以通过以下方式获取所有具有闭合分支的头 hg heads closed 但是 我如何通过命令行知道所有关闭的分支 RTM hg help revsets hg
  • Node.js:客户端模板与服务器端模板

    我已经尝试学习 Node js 几天了 但有一件事情我很困惑 JQuery 模板等客户端模板解决方案与 Jade for Node js 等服务器端解决方案之间有什么区别 各有什么用途 它们用在哪里 它们可以一起使用吗 如果有的话 有没有两
  • 使用“IN”命令将数组作为参数传递给 SQL 查询

    大家下午好 我有一个关于 SQL 查询的问题 是否可以使用数组作为使用 IN 命令的查询的参数 例如 int x 2 3 4 5 UPDATE table name set field 数据 WHERE field ID IN x 我问这个
  • Auth.net 捕获问题

    我在 auth net 上捕获交易的函数是 public function capture Varien Object payment amount if this gt isEnabled return parent capture pa
  • 带地址的 R 地理编码

    我有 32K 行地址 我必须为其查找长 纬度值 我正在使用找到的代码here http www storybench org geocode csv addresses r 我非常感谢这个人创造了它 但我有一个问题 我想对其进行编辑 以便如
  • pthread_create 的钩子

    是否有 在 glibc 2 5 及更新版本中 为 pthread create 定义钩子的方法 有很多二进制应用程序 我想编写一个动态库通过 LD PRELOAD 加载 我可以在 main 属性构造函数 的入口处添加钩子 但是如何强制我的代