Как отлаживать пошаговый управляемый код с помощью MDbgEngine

Предполагая, что у меня есть простое консольное приложение C# (код ниже). Я хочу отладить это шаг за шагом, используя менеджер оболочки mdbg.

using System;

namespace TestApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("1");
            Console.WriteLine("2");
            Console.WriteLine("3");
            Console.WriteLine("4");
            Console.WriteLine("5");
        }
    }
}

Как использовать MDbgEngine для пошаговой отладки этого кода?

[MTAThread]
static void Main(string[] args)
{
    var debugger = new MDbgEngine();
    debugger.Options.CreateProcessWithNewConsole = true;
    debugger.Options.StopOnException = true;

    var process = debugger.CreateProcess("TestApplication.exe", "", DebugModeFlag.Debug, null);
    process.Go();

    //HOW TO GO STEP BY STEP TROUGH THE TestApplication?
}

1 ответ

Вы должны подписаться на process.PostDebugEvent Надеемся, что отладчик остановится в самом начале вашего приложения, или вы можете установить точку останова в нужном вам месте. process.Breakpoints.CreateBreakpoint()

process.PostDebugEvent += (ss, ee) => {
    if (ee.CallbackType == ManagedCallbackType.OnBreakpoint)
    {
        // here do what you want and then you can
        // process.StepInto, StepOver, or StepOut to move from here
    }
};
Другие вопросы по тегам