Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
1

Принципы отладки в MVS 2012

31.08.2013, 18:34. Просмотров 740. Ответов 17
Метки нет (Все метки)

Привет киберфорумцы!

Подскажите пожалуйста, как в режиме отладки путешествовать только по написанному мной коду не, заходя в файлы предоставляемые MVS? А то начинаешь искать ошибку, выставив точку останова, для того, чтобы отследить поведение некоторых переменных внутри функции, тыкаешь Ф11 (чтобы перепрыгнуть из мейн в функцию), а забрасывает в какой-нибудь бесконечный ostream или streambuf... Вот хотелось бы, чтобы "хождение" было только по моему коду. Как это организовать (платформа MVS 2012)?
Также очень хотелось бы отслеживать значения некоторых переменных внутри функции. Делаю следующее: создаю свои контрольные значения (пишу имя переменных, создавая контрольные значения), но они почему-то не определяются (см. картинку).
Почему значение itsLen на данном скрин-шоте не определилось? Ведь программа уже должна его определить? Или я не правильно использую эту функцию?
0
Миниатюры
Принципы отладки в MVS 2012  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2013, 18:34
Ответы с готовыми решениями:

MVS 2012 Кривая подсветка синтаксиса
Запускаю студию, пишу какое-то время, а потом начинается такая херня (см....

MVS 2012 Выдает ошибку переопределение функции main
По коду, все хорошо, а выдает какую-то не известную ошибку,скажите в чем дело....

MVS 10 vs QT
Мне хотелось бы узнать что лучше QT или Microsoft Visual Stidio 2010. Учусь...

MVS 2010
Пишу на Microsoft visual studio 2010 на с++. Проблема такая: После сборки...

Компиляция в mvs
Приветствую всех. У меня установлен Microsoft Visual Studio 2015. Как...

17
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
31.08.2013, 18:41 2
Цитата Сообщение от BESSON_off Посмотреть сообщение
ыкаешь Ф11 (чтобы перепрыгнуть из мейн в функцию),
кнопка F10 без захода в функцию
но если ты хочешь заходить в свою функцию а в чужие не хочешь то не получится или заходишь или нет
тут может помочь выход из функции ctrl+F11, т.е когда нажимаешь возвращаешься в то место откуда функция вызвана
0
Kuzia domovenok
2357 / 2091 / 494
Регистрация: 25.03.2012
Сообщений: 7,487
Записей в блоге: 1
31.08.2013, 18:42 3
ставить брейкпойнты в тех функциях, в которые хочешь зайти и не ставить в тех, в которые не хочешь
Жать Ф11 для входа в функцию, в которую хочешь зайти и Ф10, наоборот через которую хочешь прыгнуть
0
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
31.08.2013, 18:45 4
Цитата Сообщение от BESSON_off Посмотреть сообщение
Почему значение itsLen на данном скрин-шоте не определилось?
а что это? где определена?
Цитата Сообщение от BESSON_off Посмотреть сообщение
Также очень хотелось бы отслеживать значения некоторых переменных внутри функции.
можешь подвести курсор мыши к переменной (в коде) и подождать,должно высветится
0
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
31.08.2013, 18:56  [ТС] 5
Цитата Сообщение от ValeryS Посмотреть сообщение
а что это? где определена?
Она определена в объявлении класса и заполняется конструктором. И если я выведу ее в этом месте в консоль(cout), то мне покажут значение itsLen, а путем создания "Контрольного значения" так не получается.
Я ведь правильно понял, что создать "Контрольное значение" - это нужно написать имя переменной, которую нужно отследить и как только программа определит это значение, оно сразу же покажется напротив имени "Контрольного значения"?

А по поводу захода в функцию: как быть если нужно отследить значение какого-либо перегруженного оператора в какой-либо функции, которая вызывается другой функцией? Т.е. вопрос в том - точку останова можно устанавливать в функции main, а дальше уже оттуда перебежками (Ф10) до нужной функции, после чего заходим в нее (Ф11) и далее уже пошагово отслеживаем через "Контрольные значения" нужные переменные. Все так?
0
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
31.08.2013, 20:03 6
Цитата Сообщение от BESSON_off Посмотреть сообщение
Т.е. вопрос в том - точку останова можно устанавливать в функции main, а дальше уже оттуда перебежками (Ф10) до нужной функции, после чего заходим в нее (Ф11)
а почему не поставить точку останова сразу в нужной функции?
Цитата Сообщение от BESSON_off Посмотреть сообщение
это нужно написать имя переменной, которую нужно отследить и как только программа определит это значение, оно сразу же покажется напротив имени "Контрольного значения"?
все правильно
но может ты ошибся в написании имени
проще захватить в листинге имя переменной и перетащить в окошко
есть еще закладка типа "Автоматические значения"(точно не помню) там указываются переменные видимые на данном участке кода
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
31.08.2013, 20:06 7
Цитата Сообщение от BESSON_off Посмотреть сообщение
а дальше уже оттуда перебежками (Ф10) до нужной функции, после чего заходим в нее (Ф11)
Можно сразу в ней поставить точку останова.
0
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
31.08.2013, 20:07  [ТС] 8
Цитата Сообщение от ValeryS Посмотреть сообщение
а почему не поставить точку останова сразу в нужной функции?
Если точка стоит не в мейне, то она почему то во внимания отладчика не берется, он ее пролетает.
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
31.08.2013, 20:10 9
Контрольные значения бывают глючат (не так давно тема была). Можно попробовать удалить значения и снова добавить.
Отладка в Visual Studio 2010, не отображаются контрольные переменные

Добавлено через 1 минуту
Цитата Сообщение от BESSON_off Посмотреть сообщение
Если точка стоит не в мейне, то она почему то во внимания отладчика не берется, он ее пролетает.
Глюки. Если заход есть, то и точка останова должна сработать. Удалить точку и добавить.
0
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
31.08.2013, 20:13 10
Цитата Сообщение от BESSON_off Посмотреть сообщение
Если точка стоит не в мейне, то она почему то во внимания отладчика не берется, он ее пролетает.
а ты не Релиз ли версию отлаживаешь?
если её то забей, там оптимизатор поработал и от твоего кода мало что осталось
по этому может не видеть и твою переменную, оптимизатор её мог просто выкинуть
0
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
31.08.2013, 20:40  [ТС] 11
Цитата Сообщение от ValeryS Посмотреть сообщение
а ты не Релиз ли версию отлаживаешь?
Именно ее.
Т.е. правильно будет выставлять DEBUG на момент отладки, а на момент сборки Release?

В предложенной ветке вычитал следующее: "Откройте окно "Стек вызовов". В нём будет отображена функция, в которой произошла остановка, а так же иерархия вызовов. Перемещаясь по этим функциям, вы будете видеть различные переменные.

Область видимости и все дела."
- что за окно "Стек вызовов"? Где оно?
0
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
31.08.2013, 20:42 12
Цитата Сообщение от BESSON_off Посмотреть сообщение
Т.е. правильно будет выставлять DEBUG на момент отладки, а на момент сборки Release?
да
она ведь так и называется DEBUG(отладка)
0
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
31.08.2013, 20:50  [ТС] 13
А есть какие-либо методы, расширения, дополнения, сторонние программы, которые упрощают отладку в MVS2012 или делают ее более наглядной?
0
DU
1487 / 1133 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
31.08.2013, 20:55 14
пример упрощения можете привести? куда уж проще то? попробуйте коммандлайн отладку в каком-нибудь GDB, вот это я понимаю неудобно. а в студии - самая нормальная отладка из всех, что доводилось пробовать.
0
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
31.08.2013, 20:59 15
Цитата Сообщение от BESSON_off Посмотреть сообщение
Область видимости и все дела." - что за окно "Стек вызовов"? Где оно?
у тебя она не открыта( на скриншоте) полазь по меню "Вид","Отладка" найдешь много вкусностей
0
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
03.09.2013, 16:49  [ТС] 16
Цитата Сообщение от ValeryS Посмотреть сообщение
у тебя она не открыта( на скриншоте) полазь по меню "Вид","Отладка" найдешь много вкусностей
люблю вкусности - пошел искать

Добавлено через 21 час 23 минуты
Поковырялся в гугле, отладчике и на форуме, вроде разобрался, но осталось несколько важных, но упущенных момента:
1) Как при отладке делать шаг назад (противоположность Ф10/Ф11)?
2) Что обозначает значок, который появляется в режиме отладки после нажатия CTRL+F2

Речь идет о MVS2012... (на всякий случай)
0
ValeryS
Модератор
7274 / 5527 / 693
Регистрация: 14.02.2011
Сообщений: 18,727
03.09.2013, 17:15 17
Цитата Сообщение от BESSON_off Посмотреть сообщение
) Как при отладке делать шаг назад (противоположность Ф10/Ф11)?
никак
программа выполняется по шагам, назад вернутся не можешь
Цитата Сообщение от BESSON_off Посмотреть сообщение
Что обозначает значок, который появляется в режиме отладки после нажатия CTRL+F2
он не только при отладке появляется
это так называемые закладки
например у тебя большой файл и нужно смотреть код в начале и в конце
мотаешь на начало жмешь CTRL+F2
мотаешь на конец и опять жмешь CTRL+F2
теперь просто нажимая на F2 будешь перемещаться, между ними
можешь поставить сколько хочешь
1
BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
03.09.2013, 19:59  [ТС] 18
Спасибо ValeryS!

В поисках помощи от гугла натолкнулся на залежи инфы по хотеям MVS, вдруг кому полезно будет, все таки раздел для новичков: http://habrahabr.ru/post/73835/ и http://habrahabr.ru/post/121104/.
0
03.09.2013, 19:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2013, 19:59

Импорт библиотеки в MVS
Здравствуйте! Нужна небольшая помощь знающих! Скачал библиотеку cURL (работа...

Что такое MVS?
И для чего нужно?В гугле ничё не нашёл.

Не компилирует в MVS 2008
Господамы вот такая программа для проверки устного умножения в MVS 2008...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru