Логирование возвращаемого значения

Тема в разделе "WASM.A&O", создана пользователем Velheart, 11 янв 2010.

  1. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Собственно встала задача, над которой уже довольно долго думаю, но ничего удовлетворительного пока не придумал:
    Нужно сохранять в некоторую область памяти контекст, каждый раз после выполнения некоторой функции. Особенность в том, что не известно количество аргументов, которые она принимает и хук не должен сильно сказываться на производительности. По дефолту предполагается, что функция вызывается очень часто.
    Я пока вижу 2 способа, но не один из них не кажется мне хорошим =) :

    1. В хуке вызывать функцию с заведомо большим количеством параметров, например копировать 0х100 байт с верхушки стека. -- не есть гуд, т.к. могут быть извращенцы передающие больше данных в функцию и вообще как-то.. криво =)

    2. Портить перед вызовом адрес возврата (например устанавливать старший бит) -- медленно, вызовы в ядро + не работает для ядра.

    Может я чего-нить очевидного не замечаю? Вроде бы тривиальная задача..