.NET Profiler не вызывает функции перехватывает функции входа / выхода

Я хочу использовать профилировщик.NET для отслеживания вызываемых функций приложения. Я использовал CLR Profiler в качестве шаблона, но не изменил профилировщик (Project ProfilerOBJ) сам (кроме GUID). Когда я пытаюсь профилировать приложение, функция входа / выхода перехватывает функции (помимо других обратных вызовов, таких как JITCompilationStarted) не называются. Но есть также некоторые обратные вызовы, которые называются (например, Shutdown) (что говорит мне, что профилировщик загружен в процессе).

Я попытался запустить процессы в 32- и 64-битном режиме (в 64-битном режиме функции, похоже, где-то определены), но безуспешно.

Тестовое приложение, которое я профилировал, выглядит следующим образом:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Press Enter to allocate object");
        Console.ReadLine();
        var obj = new Person();

        Console.WriteLine("Press Enter to call method on allocated object");
        Console.ReadLine();
        obj.Walk();

        Console.WriteLine("Press Enter to exit");
        Console.ReadLine();
    }
}

class Person
{
    private int walked = 0;

    public void Walk()
    {
        this.walked++;
    }
}

Я ожидал, по крайней мере, обратные вызовы ICorProfilerCallback::ObjectAllocated и функции входа / выхода, которые нужно вызвать. Но единственный звонок был ICorProfilerCallback::Shutdown,

Кажется, что даже хуки функций входа / выхода из исходного профилировщика CLR не вызываются (я пытался вывести сообщение в обратном вызове).

Что мне не хватает? Есть ли что-то еще, кроме регистрации хуков функции входа / выхода? Или я делаю неправильные предположения о хуках функции ввода / вывода?

1 ответ

Решение

Я только что прочитал, что есть дополнительные флаги, которые вы можете установить, чтобы указать, какие события вас интересуют. Один из них является COR_PRF_MONITOR_ENTERLEAVE который делает именно то, что я искал. Спасибо резиновая утка.

Другие вопросы по тегам