powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в коде определить, что сейчас отладка?
31 сообщений из 31, показаны все 2 страниц
Как в коде определить, что сейчас отладка?
    #39544745
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется что-то типа:
Код: plaintext
1.
if(Debug) TaskManager.setMaxThreadCount(1);



Как такое сделать?
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544749
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
int main(...)
{

bool bDebugIsOn = false;

#if defined _DEBUG
bDebugIsOn = true;
#endif
.
.
.
if (bDebugIsOn) TaskManager.setMaxThreadCount(1);

return 0;
}
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544750
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLКак такое сделать?
ключик в командной строчке сделать
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544751
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum,

Это не отладка. Это Debug версия приложения.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544754
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилAlekseySQLКак такое сделать?
ключик в командной строчке сделать
Но приложение отладчиком можно подхватить и после запуска из командной строки.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544755
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum,
у меня во время отладки в вашем коде параметр bDebugIsOn равен false. Не прокатывает, одним словом.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544757
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилключик в командной строчке сделать

Можно написать, что за ключ? В какое поле что писать и как в коде потом поймать этот ключ?
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544760
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLCerebrum,
у меня во время отладки в вашем коде параметр bDebugIsOn равен false. Не прокатывает, одним словом.
Какая среда разработки?
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544765
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

в обычной глобальной переменной
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544767
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravCerebrum,

Это не отладка. Это Debug версия приложения.
для отладки и предназначена DEBUG версия приложения
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544769
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumpetravCerebrum,

Это не отладка. Это Debug версия приложения.
для отладки и предназначена DEBUG версия приложения
Под отладчиком можно и Release версию запустить. Так же можно Debug версию запустить без отладчика.

Может просто автор топика вопрос неправильно задал.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544771
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLCerebrum,
у меня во время отладки в вашем коде параметр bDebugIsOn равен false. Не прокатывает, одним словом.

Чтобы это начало работать (если у тебя IDE VS и проект ты не покорежил), ты должен запускать отладочную (debug) версию приложения. Текущая версия приложения выбирается вот здесь
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544772
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLИзопропилключик в командной строчке сделать

Можно написать, что за ключ? В какое поле что писать и как в коде потом поймать этот ключ?
Да, думаю, нет такого ключа и его так просто не добавишь. Хотя...
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544774
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravМожет просто автор топика вопрос неправильно задал.
подразумеваю, что так и есть, потому что я не знаю накой хрен может понадобится такой изврат, как определять в рантайме запущено ли приложение из под отладчика.

Нужно что-то отлаживать - запускай DEBUG сборку
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544778
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumpetravМожет просто автор топика вопрос неправильно задал.
подразумеваю, что так и есть, потому что я не знаю накой хрен может понадобится такой изврат, как определять в рантайме запущено ли приложение из под отладчика.
Лет 15-20 назад где-то читал, что вирусы стараются определить, что они запущены под отладчиком и как-то пытаются сопротивляться отладке. Но я не разбираюсь в этом :)
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544780
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544782
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravCerebrumпропущено...

подразумеваю, что так и есть, потому что я не знаю накой хрен может понадобится такой изврат, как определять в рантайме запущено ли приложение из под отладчика.
Лет 15-20 назад где-то читал, что вирусы стараются определить, что они запущены под отладчиком и как-то пытаются сопротивляться отладке. Но я не разбираюсь в этом :)
веришь, нет, тоже сижу и думаю: либо автор пишет дебаггер или какой-то хитрый обфускатор, но судя по его постам это не тот уровень, пока :)
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544785
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov https://msdn.microsoft.com/en-us/library/windows/desktop/ms680345(v=vs.85).aspx

:). Наверняка этот правильный ответ гуглится за 2 минуты максимум. Но скорее всего за 20-ть секунд.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544928
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumpetravпропущено...

Лет 15-20 назад где-то читал, что вирусы стараются определить, что они запущены под отладчиком и как-то пытаются сопротивляться отладке. Но я не разбираюсь в этом :)
веришь, нет, тоже сижу и думаю: либо автор пишет дебаггер или какой-то хитрый обфускатор, но судя по его постам это не тот уровень, пока :)
Я с первых строк о том-же подумал.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39544972
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ с первых строк о том-же подумал.у нас было такое, что был код, не специально "мешающий" отладке - нагскрин, закрывающий окно IDE. Т.е. IDE стоит на брекпоинте, а его закрывает топмост нагскрин, и всё, дедлок у людей был... Они добавили код, который в режиме дебага не включал нагскрин
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545027
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrumподразумеваю, что так и есть, потому что я не знаю накой хрен может понадобится такой изврат, как определять в рантайме запущено ли приложение из под отладчика.

Нужно что-то отлаживать - запускай DEBUG сборку

Пользуюсь Qt- Creator, нажимаю специальную кнопочку "Отладка", расположенную слева внизу. Нужно мне это чтобы не запускать несколько потоков во время отладки, потому что отлаживать многопоточное приложение неудобно.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545033
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда предложенный мной способ вполне подойдет, если в Qt есть такой макрос как _DEBUG.
Если же его нет, то ты можешь определить его самостоятельно, так как директивы препроцессора - элемент языка, а не IDE.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#define _MY_DEBUG

#if defined _MY_DEBUG
    TaskManager.setMaxThreadCount(1);                // в отладочной версии кода
#else
    TaskManager.setMaxThreadCount(5);                // в release'e или в полноценном debug'e
#endif



Если твоя IDE поддерживает создание профилей, а скорее всего это так. То к существующим двум (DEBUG и RELEASE) ты можешь создать свой собственный (например, MyDebug), в котором определить специфический макрос, наподобие стандартного _DEBUG (например, _MY_DEBUG), который позволит твоей IDE понять, какую ветку кода ей необходимо компилировать. Но сути это не изменит и происходить будет тоже самое, что и в коде, который я привел выше.
Переключаясь между профилями ты сможешь быстро выбирать нужный состав компилируемых сущностей, включающих определенное тобой количество потоков.

Только будь осторожен, поскольку то, что ты делаешь может сыграть с тобой злую шутку. Экспериментируя только с одним потоком ты заведомо выполняешь отладку в условиях, которые не будут соответствовать реальным условиям эксплуатации твоего ПО, а следовательно, то что прекрасно работало в твоей однопоточной версии, может пойти по всем известному маршруту, как только ты соберешь полноценный релиз.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545087
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrum, спасибо, но тут надо постоянно define передергивать: надо то так потестить, то так... Хочется чтобы система сама понимала, что сейчас Debug без дополнительных телодвижений.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545169
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AlekseySQL]CerebrumПользуюсь Qt- Creator, нажимаю специальную кнопочку "Отладка"для этого вида сборки не определён макрос QT_NO_DEBUG, вот его и надо проверять
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545171
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, накосорезил с цитатами
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545190
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLНужно мне это чтобы не запускать несколько потоков во время отладки, потому что отлаживать
многопоточное приложение неудобно.

Даже хуже: его совершенно невозможно отлаживать любым отладчиком. Потому что тот вносит
помехи, скрывающие багов. Ты никогда не поймаешь отладчиком гонки потоков.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545368
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLПользуюсь Qt- Creator, нажимаю специальную кнопочку "Отладка", расположенную слева внизу. Нужно мне это чтобы не запускать несколько потоков во время отладки, потому что отлаживать многопоточное приложение неудобно.Так ключ в командной строке сделайте и проверяйте...
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545544
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BarloneТак ключ в командной строке сделайте и проверяйте...

Как?
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39545708
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLBarloneТак ключ в командной строке сделайте и проверяйте...

Как?Ну если вы пользуетесь QtCreator, наверное Qt используете в программе. Доку на QCommandLineParser посмотрите.
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39546186
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLХочется что-то типа:
Код: plaintext
1.
if(Debug) TaskManager.setMaxThreadCount(1);



Как такое сделать?

Код: plaintext
1.
2.
3.
#ifdef _DEBUG
    printf("Йа ф атлатке!\n");
#endif
...
Рейтинг: 0 / 0
Как в коде определить, что сейчас отладка?
    #39557633
Фотография Дмитрий Вебстер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IsDebuggerPresent()
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в коде определить, что сейчас отладка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]