Включение встроенной отладки и нажатие клавиши F12 вызывает __debugbreak

В приложении, использующем OpenTK, при включении встроенной отладки и нажатии F12 отладчик ломается:

Инструкция точки останова (оператор __debugbreak() или аналогичный вызов) была выполнена в ...

Стек вызовов не очень помогает определить причину:

      ntdll.dll!DbgBreakPoint()
ntdll.dll!DbgUiRemoteBreakin()
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()

Сначала я подумал, что это связано с AeDebug, однако это не так:

  • изменение Auto ничего не дает
  • изменение UserDebuggerHotKey ничего не делает
  • изменение отладчика ничего не дает
  • перезагрузка компьютера, сброс параметров Visual Studio ничего не делает

Простейшее приложение , где это происходит :

      using OpenTK.Graphics.OpenGL;
using OpenTK.Mathematics;
using OpenTK.Windowing.Common;
using OpenTK.Windowing.Desktop;
using OpenTK.Windowing.GraphicsLibraryFramework;

using var window = new MyGameWindow(GameWindowSettings.Default, NativeWindowSettings.Default);
window.Run();

public class MyGameWindow : GameWindow {
    public MyGameWindow(GameWindowSettings gameWindowSettings, NativeWindowSettings nativeWindowSettings)
        : base(gameWindowSettings, nativeWindowSettings) { }

    private double TotalTime { get; set; }

    protected override void OnUpdateFrame(FrameEventArgs args) {
        TotalTime += args.Time;
        
        if (KeyboardState[Keys.F12])
            TotalTime = 0;
    }

    protected override void OnRenderFrame(FrameEventArgs args) {
        GL.Clear(ClearBufferMask.ColorBufferBit);
        GL.ClearColor(Color4.FromHsv(new Vector4((float)TotalTime % 10f / 10f, 1.0f, 0.5f, 1.0f)));
        SwapBuffers();
    }

    protected override void OnResize(ResizeEventArgs e) {
        base.OnResize(e);
        GL.Viewport(0, 0, e.Width, e.Height);
    }
}

запускSettings.json:

      {
  "profiles": {
    "DebugBreakF12": {
      "commandName": "Project",
      "nativeDebugging": true
    }
  }
}

Вопрос:

Как можно отключить__debugbreakповедение при нажатии клавиши F12?

Или я должен просто забыть использовать клавишу F12, когда включена собственная отладка?

0 ответов

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