Как отлаживать пошаговый управляемый код с помощью 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
}
};