Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2011, 18:47   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию VS 9 показывает не все переменные при отладке.

Во вкладке Locals имеется только некоторые из объявленных переменных. Баг?
TwiX вне форума Ответить с цитированием
Старый 05.09.2011, 19:12   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Возможно, оно показывает только те, которые к этому моменту получили вразумительное значение. Т.е. прячет неициализированные или вышедшие из области видимости, чтобы не засорять экран.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 05.09.2011, 21:29   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Нет. После инициализации даже не появляются.
TwiX вне форума Ответить с цитированием
Старый 06.09.2011, 13:55   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно пример кода?
и точную версию студии(включая редакцию)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.09.2011, 14:06   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
можно пример кода?
и точную версию студии(включая редакцию)
VS 2008 Pro. Ver 3.5 SP1 (Version 9.0.30729.1 SP)

Вот, пожалуйста. В циклах не видно i, а в предпоследнем не видно ни итератора it, ни rct...
Код:
void GetContours(Mat &imgBin, vector<vector<Complexf>> vCntrs, CvSize minRect, int adjustTo)
{
	
	vector<vector<Point>> cntrs;
	vector<vector<Complexf>> newCntrs;

	findContours(imgBin, cntrs, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

	Rect rct;
	vector<vector<Point>>::iterator it;
	it=cntrs.begin();
	while (it!=cntrs.end())
	{
		rct=boundingRect(*it);
		if (rct.width<minRect.width&&rct.height<minRect.height)
			cntrs.erase(it);
		else
			it++;
	}
	
	int newSize=cntrs.size();
	newCntrs.resize(newSize);
	for (int i=0; i<newSize; i++)
	{
			int ss=cntrs[i].size();
			for (int j=0; j<ss-1; j++)
				newCntrs[i].push_back(Complex<float>(cntrs[i][j+1].x-cntrs[i][j].x, cntrs[i][j+1].y-cntrs[i][j].y));
			newCntrs[i].push_back(Complex<float>(cntrs[i][0].x-cntrs[i][ss-1].x, cntrs[i][0].y-cntrs[i][ss-1].y));
	}
}
Заодно вопрос. Что в данном случае лучше использовать? resize или reserve (у вектора newCntrs)?
TwiX вне форума Ответить с цитированием
Старый 06.09.2011, 14:18   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
В циклах не видно i
Тут надо аккуратней, если полностью не вырубить оптимизацию. Компилятор может запихнуть ее в регистр, развернуть цикл,..
p51x на форуме Ответить с цитированием
Старый 06.09.2011, 14:24   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуйте смотреть на видимые переменные.

PS: недавно я изменил свое мнение про 2008-ку на хучшее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.09.2011, 14:35   #8
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
попробуйте смотреть на видимые переменные.

PS: недавно я изменил свое мнение про 2008-ку на хучшее.
Имеется в виду "Watch" (для наблюдения). Пробовал добавлять. Говорит, что не видит переменной с таким именем...
TwiX вне форума Ответить с цитированием
Старый 06.09.2011, 15:42   #9
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Делайте отладку в _DEBUG конфигурации с отключенной оптимизацией.

Цитата:
Пепел Феникса
PS: недавно я изменил свое мнение про 2008-ку на хучшее.
Что повлияло?
f.hump вне форума Ответить с цитированием
Старый 06.09.2011, 15:52   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Что повлияло?
когда она отказалась компилировать код соответсвующий стандарту.(2010 компилирует)
а именно инициализация параметра std::wstring/std::string сразу от строковой константы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль данных у переменных при отладке... Человек_Борща Общие вопросы Delphi 8 04.07.2011 02:43
Ошибка при отладке Kernel32 Общие вопросы Delphi 0 04.05.2011 14:52
все слетает - и показывает ошибку Anatolyi666 Операционные системы общие вопросы 4 17.11.2010 15:56
ИС при отладке программы Svensson Помощь студентам 1 12.11.2008 00:28
Не показывает значения элементов массивов при отладке klerk Общие вопросы Delphi 10 01.11.2007 16:14