2016-12-27 22 views
0

Для целей отладки в целях получения аргументов некоторой функции в скомпилированной библиотеке при каждом вызове. Я знаю, что могу перекомпилировать библиотеку, но для некоторых библиотек может потребоваться половина дня (например, Qt).C++ функция hook от скомпилированной библиотеки для отладки

Рассмотрим эту функцию в скомпилированной библиотеке

class SomeClass 
{ 
public: 
    static QString getUpper(const QString &str); 
}; 

программа, которая включает в себя этот SomeClass из библиотеки

void printArguments(const QString &str) 
{ 
    qDebug() << str; //here we print argument 
} 

int main() 
{ 
    //function that I need 
    hookFunction((void*)&SomeClass::getUpper, (void*)&printArguments); 
    SomeClass::getUpper("Hi"); // here I will see "Hi" in console 
} 

Я нашел similar question, но мне не нужен DLL инъекции. Это моя программа, которая включает в себя библиотеку.

ответ