gpt4 book ai didi

c++ - 让gcc在c操作之间调用特定函数

转载 作者:行者123 更新时间:2023-11-30 17:59:33 25 4
gpt4 key购买 nike

我正在尝试为单线程程序制作一个看门狗。问题是,我们运行了一些外部 so/dll(代码可用),这意味着我们将控制权传递给了那里。

这个想法是通过一些回调来重新编译它们,以取消例程。

是否可以让GCC在这个编译的外部代码中的C事务或asm事务之间调用一些回调函数?

最佳答案

我要建议的内容不涉及编译器,但这听起来像是一个可以在运行时使用 POSIX 信号或 ptrace 解决的问题。 ...

使用信号,您可以中断当前上下文,类似于内核模式下使用 IRQ 发生的情况。您将不得不担心“信号安全”(例如:您的处理程序不能使用 malloc 因为它可能会在其数据结构处于不确定状态时中断 malloc 本身状态。)

使用 ptrace,您可以像在调试器中一样单步执行另一个进程中的指令。

要小心行事,因为这些机制很难正确使用,而且很容易搬起石头砸自己的脚。

关于c++ - 让gcc在c操作之间调用特定函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com