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

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

Восстановить пароль Регистрация
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
31.08.2013, 18:34     Принципы отладки в MVS 2012 #1
Привет киберфорумцы!

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

C++ MVS 2010
C++ MVS 10 vs QT
C++ Учебники/уроки по MVS
C++ Импорт библиотеки в MVS
C++ Компиляция на MVS 2013
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
31.08.2013, 18:41     Принципы отладки в MVS 2012 #2
Цитата Сообщение от BESSON_off Посмотреть сообщение
ыкаешь Ф11 (чтобы перепрыгнуть из мейн в функцию),
кнопка F10 без захода в функцию
но если ты хочешь заходить в свою функцию а в чужие не хочешь то не получится или заходишь или нет
тут может помочь выход из функции ctrl+F11, т.е когда нажимаешь возвращаешься в то место откуда функция вызвана
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
31.08.2013, 18:42     Принципы отладки в MVS 2012 #3
ставить брейкпойнты в тех функциях, в которые хочешь зайти и не ставить в тех, в которые не хочешь
Жать Ф11 для входа в функцию, в которую хочешь зайти и Ф10, наоборот через которую хочешь прыгнуть
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
31.08.2013, 18:45     Принципы отладки в MVS 2012 #4
Цитата Сообщение от BESSON_off Посмотреть сообщение
Почему значение itsLen на данном скрин-шоте не определилось?
а что это? где определена?
Цитата Сообщение от BESSON_off Посмотреть сообщение
Также очень хотелось бы отслеживать значения некоторых переменных внутри функции.
можешь подвести курсор мыши к переменной (в коде) и подождать,должно высветится
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
31.08.2013, 18:56  [ТС]     Принципы отладки в MVS 2012 #5
Цитата Сообщение от ValeryS Посмотреть сообщение
а что это? где определена?
Она определена в объявлении класса и заполняется конструктором. И если я выведу ее в этом месте в консоль(cout), то мне покажут значение itsLen, а путем создания "Контрольного значения" так не получается.
Я ведь правильно понял, что создать "Контрольное значение" - это нужно написать имя переменной, которую нужно отследить и как только программа определит это значение, оно сразу же покажется напротив имени "Контрольного значения"?

А по поводу захода в функцию: как быть если нужно отследить значение какого-либо перегруженного оператора в какой-либо функции, которая вызывается другой функцией? Т.е. вопрос в том - точку останова можно устанавливать в функции main, а дальше уже оттуда перебежками (Ф10) до нужной функции, после чего заходим в нее (Ф11) и далее уже пошагово отслеживаем через "Контрольные значения" нужные переменные. Все так?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
31.08.2013, 20:03     Принципы отладки в MVS 2012 #6
Цитата Сообщение от BESSON_off Посмотреть сообщение
Т.е. вопрос в том - точку останова можно устанавливать в функции main, а дальше уже оттуда перебежками (Ф10) до нужной функции, после чего заходим в нее (Ф11)
а почему не поставить точку останова сразу в нужной функции?
Цитата Сообщение от BESSON_off Посмотреть сообщение
это нужно написать имя переменной, которую нужно отследить и как только программа определит это значение, оно сразу же покажется напротив имени "Контрольного значения"?
все правильно
но может ты ошибся в написании имени
проще захватить в листинге имя переменной и перетащить в окошко
есть еще закладка типа "Автоматические значения"(точно не помню) там указываются переменные видимые на данном участке кода
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.08.2013, 20:06     Принципы отладки в MVS 2012 #7
Цитата Сообщение от BESSON_off Посмотреть сообщение
а дальше уже оттуда перебежками (Ф10) до нужной функции, после чего заходим в нее (Ф11)
Можно сразу в ней поставить точку останова.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
31.08.2013, 20:07  [ТС]     Принципы отладки в MVS 2012 #8
Цитата Сообщение от ValeryS Посмотреть сообщение
а почему не поставить точку останова сразу в нужной функции?
Если точка стоит не в мейне, то она почему то во внимания отладчика не берется, он ее пролетает.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.08.2013, 20:10     Принципы отладки в MVS 2012 #9
Контрольные значения бывают глючат (не так давно тема была). Можно попробовать удалить значения и снова добавить.
Отладка в Visual Studio 2010, не отображаются контрольные переменные

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

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

Область видимости и все дела."
- что за окно "Стек вызовов"? Где оно?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
31.08.2013, 20:42     Принципы отладки в MVS 2012 #12
Цитата Сообщение от BESSON_off Посмотреть сообщение
Т.е. правильно будет выставлять DEBUG на момент отладки, а на момент сборки Release?
да
она ведь так и называется DEBUG(отладка)
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
31.08.2013, 20:50  [ТС]     Принципы отладки в MVS 2012 #13
А есть какие-либо методы, расширения, дополнения, сторонние программы, которые упрощают отладку в MVS2012 или делают ее более наглядной?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
31.08.2013, 20:55     Принципы отладки в MVS 2012 #14
пример упрощения можете привести? куда уж проще то? попробуйте коммандлайн отладку в каком-нибудь GDB, вот это я понимаю неудобно. а в студии - самая нормальная отладка из всех, что доводилось пробовать.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
31.08.2013, 20:59     Принципы отладки в MVS 2012 #15
Цитата Сообщение от BESSON_off Посмотреть сообщение
Область видимости и все дела." - что за окно "Стек вызовов"? Где оно?
у тебя она не открыта( на скриншоте) полазь по меню "Вид","Отладка" найдешь много вкусностей
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
03.09.2013, 16:49  [ТС]     Принципы отладки в MVS 2012 #16
Цитата Сообщение от ValeryS Посмотреть сообщение
у тебя она не открыта( на скриншоте) полазь по меню "Вид","Отладка" найдешь много вкусностей
люблю вкусности - пошел искать

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

Речь идет о MVS2012... (на всякий случай)
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
03.09.2013, 17:15     Принципы отладки в MVS 2012 #17
Цитата Сообщение от BESSON_off Посмотреть сообщение
) Как при отладке делать шаг назад (противоположность Ф10/Ф11)?
никак
программа выполняется по шагам, назад вернутся не можешь
Цитата Сообщение от BESSON_off Посмотреть сообщение
Что обозначает значок, который появляется в режиме отладки после нажатия CTRL+F2
он не только при отладке появляется
это так называемые закладки
например у тебя большой файл и нужно смотреть код в начале и в конце
мотаешь на начало жмешь CTRL+F2
мотаешь на конец и опять жмешь CTRL+F2
теперь просто нажимая на F2 будешь перемещаться, между ними
можешь поставить сколько хочешь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2013, 19:59     Принципы отладки в MVS 2012
Еще ссылки по теме:

C++ Не компилирует в MVS 2008
MVS 2012 Кривая подсветка синтаксиса C++
C++ Статическая библиотека MVS errorLNK1120

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

Или воспользуйтесь поиском по форуму:
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
03.09.2013, 19:59  [ТС]     Принципы отладки в MVS 2012 #18
Спасибо ValeryS!

В поисках помощи от гугла натолкнулся на залежи инфы по хотеям MVS, вдруг кому полезно будет, все таки раздел для новичков: http://habrahabr.ru/post/73835/ и http://habrahabr.ru/post/121104/.
Yandex
Объявления
03.09.2013, 19:59     Принципы отладки в MVS 2012
Ответ Создать тему
Опции темы

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