Форум программистов, компьютерный форум CyberForum.ru

Отладка :) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Homamilae
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 48
04.08.2011, 19:29     Отладка :) #1
Доброго времени суток. Подскажите пожалуйста! Делаю отладку в Visual Studio. Хочу чтобы выполнилось условие if. Какое сочетание клавиш использовать? Заранее спасибо
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2011, 19:29     Отладка :)
Посмотрите здесь:

Отладка программы C++
Отладка C++
Отладка C++
C++ Отладка
C++ Отладка в Dev C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
04.08.2011, 21:04     Отладка :) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
alt+f4 попробуй
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.08.2011, 04:34     Отладка :) #3
Цитата Сообщение от Homamilae Посмотреть сообщение
Делаю отладку в Visual Studio. Хочу чтобы выполнилось условие if.
Очевидно, следует создать соответствующие условия, чтобы if выполнялся. Если так хочется внаглую изменить логику программы, то можно заменить на время условие в if'е на 1.

Цитата Сообщение от PointsEqual Посмотреть сообщение
alt+f4 попробуй
Очень смешно...
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
05.08.2011, 10:02     Отладка :) #4
Я вот знаю, что некоторые ассемблерные отладчики позволяют делать подобные вещи, т.е. находу менять значения флагов, чтобы условные переходы выполнялись так, как хочет программист, а не так, как должно быть. Но я не уверен, что в отладчике С++ можно делать подобные вещи, хотя может чего и не знаю)
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
05.08.2011, 10:12     Отладка :) #5
Предполагаю, что отладка идёт на уровне исходного текста. Если так, то надо ручками делать условие перехода верным. Для этого в отладчике есть средство с примерным названием Evaluate/Modify (по-русски Определение/Изменение). На примере BCB6 это выглядит так:
Отладка :)
В VS тоже должно быть нечто подобное.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
05.08.2011, 10:34     Отладка :) #6
Homamilae, установите на строке breakpoint. Потом щелкните правой кнопкой мыши на breakpoin - выйдет контекстное меню. Там смотрите.
Homamilae
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 48
06.08.2011, 18:08  [ТС]     Отладка :) #7
Спасибо большое всем, кто ответил... может я очень коротко все описала...
у меня есть программа, которая пошагово обрабатывается и этих шагов 1000...
на 600 шаге у меня происходит сбой и я хочу посмотреть, значения всех переменных на том шаге...
я искуственно создала условие, где переменная, отвечающая за шаг равна 600...
что-то вроде:
if(n==600)
k=10;
Вот я как раз и хочу что-бы n сразу стало равным 600... чтобы условие выполнилось Полазила по контекстным меню ничего похожего не нашла... у меня Visual Studio 2008...
Еще раз спасибо

Добавлено через 10 минут
Цитата Сообщение от mimicria Посмотреть сообщение
Предполагаю, что отладка идёт на уровне исходного текста. Если так, то надо ручками делать условие перехода верным. Для этого в отладчике есть средство с примерным названием Evaluate/Modify (по-русски Определение/Изменение). На примере BCB6 это выглядит так:
Вложение 90594
В VS тоже должно быть нечто подобное.
Да очень похоже на это... но не могу найти этого в VS2008... Я в отладке новичок
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
06.08.2011, 18:13     Отладка :) #8
Цитата Сообщение от Homamilae Посмотреть сообщение
if(n==600)
k=10;
Вот я как раз и хочу что-бы n сразу стало равным 600...
Ну так проще всего установить точку останова на строчке k=10 и запустить программу на выполнение. Как только условие выполнится программа должна остановиться.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
06.08.2011, 18:15     Отладка :) #9
напиши

C++
1
2
3
4
5
if(n==600){
  int a = n;
  int b = a;
}
k=10;
, и поставь break point на int b = a; выполнение остановится и в окнo Watch можешь затащить все что тебе хочется и посмотреть.
(две переменные, чтобы компилятор обдурить. он умный иногда, и если переменная не будет использована, просто выбросит этот кусок кода)
Homamilae
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 48
06.08.2011, 18:24  [ТС]     Отладка :) #10
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну так проще всего установить точку останова на строчке k=10 и запустить программу на выполнение. Как только условие выполнится программа должна остановиться.
Спасибо

Добавлено через 38 секунд
Цитата Сообщение от novi4ok Посмотреть сообщение
напиши

C++
1
2
3
4
5
if(n==600){
  int a = n;
  int b = a;
}
k=10;
, и поставь break point на int b = a; выполнение остановится и в окнo Watch можешь затащить все что тебе хочется и посмотреть.
(две переменные, чтобы компилятор обдурить. он умный иногда, и если переменная не будет использована, просто выбросит этот кусок кода)
Спасбо




Как раз то, что доктор прописал ))))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2011, 02:12     Отладка :)
Еще ссылки по теме:

Отладка C++
C++ Отладка
C++ Отладка

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
07.08.2011, 02:12     Отладка :) #11
Цитата Сообщение от Homamilae Посмотреть сообщение
на 600 шаге у меня происходит сбой и я хочу посмотреть, значения всех переменных на том шаге...
Ставишь точку останова на цикле, правый клик на точке, выбираешь пункт "Условие", вводишь нужное условие (допустим, i == 600), все, теперь точка останова сработает только когда i станет равным 600.

Цитата Сообщение от mimicria Посмотреть сообщение
Предполагаю, что отладка идёт на уровне исходного текста. Если так, то надо ручками делать условие перехода верным.
В режиме отладки устанавливаем курсор на строку, с которой требуется продолжить работу, правый клик -> "Задать следующий оператор".
Yandex
Объявления
07.08.2011, 02:12     Отладка :)
Ответ Создать тему
Опции темы

Текущее время: 23:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru