Что я хочу сделать, это когда я запускаю программу в режиме отладки, я хочу, чтобы она показывала в консоли или даже, возможно, в окне игры, что она делает, например, GameWindow::Initialized(args...), и я хочу, чтобы это выполнялось во всей программе. пока не закончится. Кроме того, если я получу функции для этого (я полагаю, что некоторые из них есть в Google), вместо проверки, находится ли он в режиме отладки: 'if (_Debug) {}', каждый раз, когда я хочу вызвать функцию, которая cout's для экран, есть ли способ, как я могу просто выполнить отладочную проверку один раз, и она будет выполнена?
Я предполагаю, что я мог бы создать поток и заставить его проверять, находится ли он в режиме отладки, я мог бы использовать функцию, которая проверяет в реальном времени, что делает игра, и чтобы это работало постоянно. Мне нужно сделать больше по многопоточности, потому что я давно этим не занимался.
Спасибо за чтение, если бы вы могли мне помочь или даже согласились с тем, что мой метод сработает, я буду очень признателен :)





Обычно вы используете #define NDEBUG, если не находитесь в режиме отладки. Так что вы можете
#ifndef NDEBUG
cout << "test\n";
#endif
Я лично использую <code> #ifdef _DEBUG bool Debug = 1 #endif </code> - я никогда не задавал вопросов по SOF, поэтому не знаю, как использовать подсветку синтаксиса.
Итак, если у вас уже есть рабочее решение, в чем вопрос?
Ну, как я уже сказал, скажем, если бы я должен был печатать много вещей в отдельных функциях, если он работает в режиме отладки, вместо использования оператора if или #ifdef, я мог бы использовать функцию, чтобы cout все, что происходит, например Game :: Initialize (), Game :: Quit () и т. д. Мне интересно, сработает ли это, но мне нужно провести некоторое исследование, чтобы понять, что происходит.
Вы можете написать центральную функцию регистрации и позволить этой функции решать, регистрировать или нет (с #ifdef). В зависимости от того, что вы хотите регистрировать, это может быть немного сложно (разные аргументы, но вам, безусловно, нужна безопасность типов). Или вы можете использовать макрос, скрывающий логику #ifdef. Разные подходы с разными преимуществами и оговорками.
Хорошо, поэтому я просто решил сделать что-то действительно простое, поэтому все, что я сделал, это определил функцию журнала, которая принимает параметр, а затем выводит его на консоль, если режим отладки включен, в противном случае все, что я сделал, это сделал #else, а затем проделайте то же самое, но я не выводил его. Так что просто #define LOG (x) / * Ничего другого * / -> Это для выпуска
Похоже, для чего нужна точка трассировки.