У меня есть проект консольного приложения c++
в Visual Studio 2019. Скомпилированный, он дает командную строку engine.exe
, которая отправляет выходные данные после пользовательского ввода и выполнения команды и ожидает другого пользовательского ввода и т. Д. c.
Фактически engine.exe
- это шахматный движок, который соответствует стандарту интерфейса UCI, который, среди прочего, заставляет движок быть исполняемым файлом командной строки и который позволяет использовать движок в Arena Chess GUI, следовательно, тег chess
. (* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * из командной строки, введя первый ход, ожидая ответа двигателей и т. д. c. Вы можете сделать то же самое, что и при отладке стандартной консоли hello world в visual studio, без проблем.
Теперь мне гораздо интереснее отлаживать Engine.exe
, а , используя , из шахмат * 1049. *, а именно Arena Chess GUI. Но это не работает:
В свойствах проекта, используемого для компиляции моего движка, я поместил (путь к) arena.exe в команду для выполнения при запуске отладки, и затем, когда отладка запущена и арена открыта, я загружаю в Arena новый движок, соответствующий моему движку, я ставлю точки останова в своем коде, но у каждого из них «нет загруженных символов».
Я запускаю Arena, загружаю в нее новый движок, который является скомпилированной отладочной версией моего движка, а затем в Visual Studio я делаю «присоединение к процессу» и добавляю Arena как процесс для присоединения к нему. Тогда у точек останова в моем коде в Visual Studio также «нет загруженных символов».
Я думаю, что проблема в том, что отладка командной строки невозможна в Visual Studio за пределами windows cmd, тогда как вы можете отлаживать dll из любого exe , используя it.
Какой стандартный способ продолжить?
Замечание. Я уже разместил свой вопрос по CSE здесь https://chess.stackexchange.com/questions/27911/debugging-my-chess-engine-through-the-arena-gui, но, наконец, думаю, что он более подходит для SE, поскольку формально он вообще не зависит от шахмат.