1
我跟在this example上拦截类中的C++函数。用LD_PRELOAD拦截C++类的构造函数
但是现在我想拦截类的构造函数和析构函数,而不仅仅是成员函数。
在这个例子中,他的确是typedef unsigned int (Foo::*methodType)() const;
。我不认为你可以在C++中使用typedef构造函数/析构函数。
我该怎么做?
我跟在this example上拦截类中的C++函数。用LD_PRELOAD拦截C++类的构造函数
但是现在我想拦截类的构造函数和析构函数,而不仅仅是成员函数。
在这个例子中,他的确是typedef unsigned int (Foo::*methodType)() const;
。我不认为你可以在C++中使用typedef构造函数/析构函数。
我该怎么做?
我试过 typedef void (QDBusConnection::*MyFunction)();
它工作,我可以用(this->*origMethod)();
来调用它,即使origMethod是一个析构函数并且没有返回说明符。
,我写我就怎么做拦截析构函数,在这里静态类功能
http://www.osletek.com/learning-center/150/Intercepting_C%2B%2B_functions_using_LD_PRELOAD
这是一个可怕的黑客,但我猜想,一个构造函数和析构函数的行为就像一个'空白(美孚步骤: :*方法)()'方法,可能是伪造的。用反汇编测试一下,或者对平台的ABI进行一些研究,应该能够证实这一点。 – 2014-10-07 20:57:09