我在Linux上用C ++编写了一个共享库,其中包含一个函数f()
。该库用于多个程序,调用该函数
现在我想用该函数进行一些调试,同时从程序A
调用它。当从任何其他程序调用它时,它应该失败,只要我调试该函数。在我无法完全控制其他程序的运行时间之后,我想添加一个异常,它在调试会话期间调用函数A
时停止除程序f
之外的每个程序。
我怎么能解决这个问题?
答案 0 :(得分:2)
我能想到的唯一方法是检查当前正在运行的进程的信息。您可以通过调用pid
函数获取getpid()
。有关linux系统上所有进程的所有信息都可以在/proc/<pid>
目录中找到。调用函数f
时,您可以检查此信息并决定是否抛出异常。
答案 1 :(得分:1)
没有办法可以解决。如果另一个进程在您的进程中有PTRACE,它可以在您的进程中发生任何事情,因此可以禁用您尝试使该功能无效的任何检查。