防止库中的函数从其他程序执行

时间:2018-03-12 08:15:20

标签: c++ shared-libraries

我在Linux上用C ++编写了一个共享库,其中包含一个函数f()。该库用于多个程序,调用该函数 现在我想用该函数进行一些调试,同时从程序A调用它。当从任何其他程序调用它时,它应该失败,只要我调试该函数。在我无法完全控制其他程序的运行时间之后,我想添加一个异常,它在调试会话期间调用函数A时停止除程序f之外的每个程序。
我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:2)

我能想到的唯一方法是检查当前正在运行的进程的信息。您可以通过调用pid函数获取getpid()。有关linux系统上所有进程的所有信息都可以在/proc/<pid>目录中找到。调用函数f时,您可以检查此信息并决定是否抛出异常。

答案 1 :(得分:1)

没有办法可以解决。如果另一个进程在您的进程中有PTRACE,它可以在您的进程中发生任何事情,因此可以禁用您尝试使该功能无效的任何检查。