Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 22.11.2004, 18:25   [включить плавающее окно]   #1
Dimon
Интересующийся
Автор темы
 
Регистрация: 11.02.2003
Адрес: Севастополь
Глюк при пошаговой отладке в MS VC++ 7.0

Работаю над проектом в Visual Studio 7.0 на Visual C++.
И тут, ни с того, ни с сего, среда разработки перестала останавливать выполнение программы в точках прерывания.
Удалил ехе-шник, все pdb-файлы, перебилдил проект. останов начал осуществляться, но... после этого творятся странные дела: при пошаговом выполнении курсор переходит не на следующую инструкцию, а как-то непонятно - как ему Бог на душу положит.
В чём тут может быть причина и что делать-то?
ОС Windows 2000 Pro SP4 Rus, проблем никогда не было.
__________________
Да здравствует здравый смысл! Dimon
Dimon вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 22.11.2004, 23:56   [включить плавающее окно]   #2
Xaionaro
Мужской Бывалый
 
Аватар для Xaionaro
 
Регистрация: 09.07.2003
Адрес: Москва
Извини если я туплю, но т.е. как "не на следующую инструкцию"?.. Т.е. ты говоришь пошаговый запуск, а она прыгает по несколько строк сразу?.. И нет никакой системы в её прыжках?
__________________
Ingenio stat sine morte decus...
Xaionaro вне форума  
Ответить с цитированием
Непрочитано 23.11.2004, 02:37   [включить плавающее окно]   #3
Benedict
Интересующийся
 
Регистрация: 19.06.2004
Dimon, так бывает, когда, .pdb не соответствует скомпилированному файлу (.exe, .dll), например, по какой-то причине среда пытается отлаживать старый .exe-шник, но используется новый .pdb. Проверь наличие .exe-шника с таким же именем в других каталогах, целевые каталоги в свойствах проекта.
__________________
А доктор всё не едет...
Benedict вне форума  
Ответить с цитированием
Непрочитано 23.11.2004, 11:29   [включить плавающее окно]   #4
Dimon
Интересующийся
Автор темы
 
Регистрация: 11.02.2003
Адрес: Севастополь
Xaionaro:
Цитата
Т.е. ты говоришь пошаговый запуск, а она прыгает по несколько строк сразу?.. И нет никакой системы в её прыжках?
- Да, именно так.

Benedict: Я как раз начал с того, что удалил и ехе-шник, и pdb-файл, в общем - всё, что образуется при компилляции и сборке проекта.
__________________
Да здравствует здравый смысл! Dimon
Dimon вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 23.11.2004, 12:15   [включить плавающее окно]   #5
Benedict
Интересующийся
 
Регистрация: 19.06.2004
Цитата
Benedict: Я как раз начал с того, что удалил и ехе-шник, и pdb-файл, в общем - всё, что образуется при компилляции и сборке проекта.
Я это понял. И сам первым же делом так поступил, когда наткнулся на аналогичный "эффект", отлаживая свою DLL. И - не помогло (с первого раза). Оказалось, что .exe-шник (другой проект в workspace-е, не мой) искал DLL с таким именем (и находил старую версию) в других каталогах. А .pdb среда брала новый, поэтому пошаговый проход "прыгал" как попало, и в окне дизассемблера было содержимое старой версии (а строки исходного текста - новые).
Кстати, внеси для проверки небольшое изменение, и посмотри в окне дизассемблера, старый .exe-шник грузит среда для отладки, или новый.
__________________
А доктор всё не едет...
Benedict вне форума  
Ответить с цитированием
Непрочитано 23.11.2004, 12:40   [включить плавающее окно]   #6
Dimon
Интересующийся
Автор темы
 
Регистрация: 11.02.2003
Адрес: Севастополь
Unhappy

Попробую.
А вот ещё вопрос. Сделал новый костяк проекта, поместил туда все исходники, .h-файлы, ресурсы.
Но при открытии главной диалоговой формы в режиме визуального редактирования GUI среда по-прежнему отображает вместо моей формы пустую (болванку), хотя после выполнения билда отображает на экране верно.
С этим как-нить можно бороться?
Кошмар какой-то: шеф рвёт и мечет, а тут проект рассыпался...
__________________
Да здравствует здравый смысл! Dimon
Dimon вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 23.11.2004, 14:01   [включить плавающее окно]   #7
Benedict
Интересующийся
 
Регистрация: 19.06.2004
Сложно сказать на расстоянии, тем более, у меня 6-й MSVC++. Скорее всего, остатки шаблона, с которого ты создавал новый проект, так влияют, какая-нибудь информация от ClassWizard-а (.clw) осталась, и т.п. Почему показывает правильную форму при выполнении, как раз ясно, у тебя же в ::InitInstance() класса приложения наверняка осталось что-то вроде
Код:
CКлассГлавнойДиалоговойФормы dlg;
m_pMainWnd = &dlg;
Зря ты затеял пересборку проекта, IMHO.
Могу поспрашивать коллег, если не решишь проблему.

ЗЫ: Да здравствует
__________________
А доктор всё не едет...
Benedict вне форума  
Ответить с цитированием
Непрочитано 23.11.2004, 16:57   [включить плавающее окно]   #8
Dimon
Интересующийся
Автор темы
 
Регистрация: 11.02.2003
Адрес: Севастополь
Ну вот, пересобрал с большим гиморроем проект заново.
Но то, от чего пытался уйти - так и осталось. Например, при клике на метод класса в Clasa View, IDE позиционирует курсор где попало.
Господа!!! Как лечить-то?
__________________
Да здравствует здравый смысл! Dimon
Dimon вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 24.11.2004, 10:02   [включить плавающее окно]   #9
Benedict
Интересующийся
 
Регистрация: 19.06.2004
Проверь что для каждого .c/.cpp создаётся .sbr (дата-время должны совпадать с .obj), что создаётся .bsc и .pdb (дата-время у них должны совпадать с .exe).
__________________
А доктор всё не едет...
Benedict вне форума  
Ответить с цитированием
Непрочитано 24.11.2004, 11:33   [включить плавающее окно]   #10
Dimon
Интересующийся
Автор темы
 
Регистрация: 11.02.2003
Адрес: Севастополь
Smile Ларчик просто открывался

Решил проблему.
В одном из модулей была пара функций (для отладки), просто функций, а не методов класса. После того, как они были оформлены методами, переход из Class View к коду и пошаговая отладка снова стали выполняться корректно.
Такой тупой трабл, казалось бы, сам мог бы сразу догадаться...
Интересно другое: ведь изначально-то всё выполнялось корректно! Что же послужило поводом для глюка - так и не понял :-) Интересно, что в ВСВ с такими недокументированными особенностями не сталкивался.
__________________
Да здравствует здравый смысл! Dimon
Dimon вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 24.11.2004, 13:22   [включить плавающее окно]   #11
Benedict
Интересующийся
 
Регистрация: 19.06.2004
У BCB своих "недокументированных особенностей" хватает. Например, при включённом Tooltip symbol insight можно ненароком задержаться курсором на каком-нибудь идентификаторе, и идти пить кофе, наблюдая 100% загрузку процессора и вырастающий до гигабайта+ размер виртуальной памяти, пока не надоест.
А теперь попробуй снова сделать методы класса функциями, интересно, что получится.
__________________
А доктор всё не едет...
Benedict вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:05. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey