Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как быстро въехать в boost-ерезированный код ?(, subj 
V
    Опции темы
jonie
Дата 23.5.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



вот есть проект (компилируется около 1ч 20 минут на машине Core2Duo E6700 в дебаге, в релизе примерно сктолько же(в решении около 50 проектов, один сервис, остальные (в основном) ATL Com сервисы)).. в нем классов такое количество, что VS открывает object browser по 5 минут..
везде используется auto_ptr, shared_prt + связки с CComPtr-ами и т.п. дофига наследований темплейтов, специализаций темплейтов, кода вида boost::auto_ptr<std::vector<boost::shared_ptr>>

студия такой код просто не жует (интелектуальное добавление просто отключается).

КАК В ЭТО ВЪЕХАТЬ?! как ЭТО отладить? как это вообще программировать?(
в дебаге утыкаемся(в большинстве случаев) при просмотре переменной  в vtable

/* извините, наболело */


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
archimed7592
Дата 23.5.2008, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(jonie @  23.5.2008,  00:05 Найти цитируемый пост)
в дебаге утыкаемся(в большинстве случаев) при просмотре переменной  в vtable

Какой такой vtable?
И, если vtable, то при чём тут буст? 0_о
И, если мне память не изменяет, у VS достаточно умный дебагер, чтобы показывать какого реально типа полиморфный объект и, соответсвенно, можно инспектить его поля.
С автодополнением - можно поставить VisualAssist, станет получше...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Rififi
Дата 23.5.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 11
Всего: 36



Цитата(jonie @  23.5.2008,  00:05 Найти цитируемый пост)
КАК В ЭТО ВЪЕХАТЬ?! как ЭТО отладить?

ты один что ли въезжаешь?
в общем случае - никак, точнее только через определённое время. если есть хотя бы programmer reference, будет легче.
ну и писать комментарии и документацию.
у меня была аналогичная ситуация, когда необходимо было саппортить проект монструозного вида (смеcь boost/stl/c++ & oracle/forms/plsql & flex/flash/actionscript) - только ~ через несколько месяцев я стал примерно понимать, что там происходит :gigi:

PM MAIL   Вверх
jonie
Дата 23.5.2008, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



archimed7592  там адский замес...яб хотел покурить то, что курили те кто делали это чудо)
упирается в vtable потому что связь через COM (между библиотеками).... кроме всего прочего везде интерфейсы.. и все через них)
Цитата

ты один что ли въезжаешь?
 пока начал разбираться... проект очень хреново документирован в плане uml (комментарии есть, но надо еще въехать в предметную область сначала, чтобы понимать их).. вообще писалось это с 2000 до 2003 года, на 2005 студии даж не компилится (там проблемы с SDK2, ну это я уже встречал ранее в других проектах ATL юзающих).

Цитата

можно поставить VisualAssist
стоит. он тож не проглатывает этот код (еще и падает порой унося за собой студию). еще и винда моск имеет.. периодически выдавая "система обнаружения доступных точек не смогла найти доступые точки" (или чет типа того, это с DCOM связано, типа "я старалась, но ниче не вышло")).
Цитата

и, соответсвенно, можно инспектить его поля.

неа, не умеет студия инспектировать поля в рантайме. в C# умеет, в С++ нет. Видит только vtable. она не может сказать какой интерфейс поддерживается данным членом кроме того что явно указан...

мож есть какой помошник в понимании кода ? (Я тут один смотрел, не впечатлил чет)...
и чет надо с автодополнением делать, без него студия становится блокнотом(


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
chipset
Дата 23.5.2008, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



В чем проблема? У меня солюшн 33 проекта и все нормально работает.  Сколько памяти на машине? Какая студия?

Ещё, попробуй что-то типа reverse engineering в UML.. может поможет. Может попробовать ещё разбить проект на несколько солюшнов?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
jonie
Дата 23.5.2008, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



4 гига. дело не в памяти, просто падает иногда этот асистент у меня что-то (хотя последний вроде стоит).. притом вылетает иногда с COM exception иногда с HeapCorrupt.
DCOM просто тупит в винде (видимо изза перезапусков проекта и срубания его отладчиком) (его проект активно юзает).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
chipset
Дата 23.5.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Visual Assist частенько глючит но студия должна работать нормально. Какая версия? Бета может?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
jonie
Дата 23.5.2008, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



2003 со всеми пакетами обновлений (в более старших версиях я еще не допер как это скомпилировать), также на машине стоят vc6,vs2005,vs2008, всякие дельфи и билдеры, нетбинсы, интеледжи айдеа, ms office-ы, и прочий хлам.... винда и студии со всеми пакетами обновлений.
хрен знает че студия падает, надо на досуге натравить на крешдамп winDbg чтоли... да фиг с ней со студией) толку от нее как от блокнота))
версии студий team ed. 

пойду напьюсь.

Это сообщение отредактировал(а) jonie - 23.5.2008, 01:00


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
chipset
Дата 23.5.2008, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Чисто для прикола слей проект на чистый комп с 2005-ой. Есть подозрение что одновременно установленные студии стольких версий могут глючить. По идее любая студия не должна теряться при виде такого кода. Хотя конечно я не знаю насколько все запущено в проекте.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
jonie
Дата 23.5.2008, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



не соберется. 2005 использует SDK2 , тогда как 2003-ая SDK 1.1 (летали, знаем, проблемы с ATL будут, а также со стандартом языка(писалось до принятия стандарта 2003 года))

с чистой студией точно не пойдет) там еще ~800 мег библиотек надо "наших"....

Это сообщение отредактировал(а) jonie - 23.5.2008, 01:02


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
chipset
Дата 23.5.2008, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Тогда первый шаг --   перевести проект на новую версию, рефакторя всякие ужасы по ходу.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
jonie
Дата 23.5.2008, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



я умру... и так уже переправил вектора в ATL (в версии 1.1 sdk, кстати, typename забыли вставить ребята с m$, где с итераторами работают)....
впрочем, наверно, с этого стоит начать...

говорят, есть совревнования, где убиранием одной запятой в hello world получают количество ошибок.. у кого больше, тот и победил).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Alek86
Дата 23.5.2008, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(jonie @  23.5.2008,  00:05 Найти цитируемый пост)
КАК В ЭТО ВЪЕХАТЬ?! как ЭТО отладить?

долго и нудно
хотя, могу кое-что посоветовать по своему опыту
если разок собраться и начать вникать (это самая трудная часть отладки), то где-то через час уже достаточно быстро начинаешь понимать, чего программист хотел добиться тем или иным блоком (при условии, что разбираешь код одного или двух человек, а не просто сборник заплаток от кучи народу)



Цитата(jonie @  23.5.2008,  00:05 Найти цитируемый пост)
студия такой код просто не жует (интелектуальное добавление просто отключается).

2008, говорят, насчет этого получше
если сможешь - поставь ее
если нет - visual assist поновее

Это сообщение отредактировал(а) Alek86 - 23.5.2008, 10:19


--------------------
user posted image    user posted image
PM MAIL   Вверх
archimed7592
Дата 23.5.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(jonie @  23.5.2008,  00:40 Найти цитируемый пост)
неа, не умеет студия инспектировать поля в рантайме. в C# умеет, в С++ нет. Видит только vtable. она не может сказать какой интерфейс поддерживается данным членом кроме того что явно указан...

9-ая умеет. 7.1-8.0 - не помню.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Lazin
Дата 23.5.2008, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(jonie @  23.5.2008,  00:57 Найти цитируемый пост)
vs2005,vs2008
 ахтунг!!!
от многих людей слышал что после установки 9-й студии 8-я переставала нормально работать, на моем домашнем компе произошла та-же история smile 

Цитата(jonie @  23.5.2008,  00:05 Найти цитируемый пост)
в решении около 50 проектов, один сервис, остальные (в основном) ATL Com сервисы

лучше оставить их в одном солюшне, они и так по разным проектам разбиты. если будешь дробить на несколько решений - можешь забыть про управление зависимостями (целая тонна проектов - наверняка там куча зависимостей smile ), msbuild довольно качественно разруливает такие вещи, и в дальнейшем билды будут быстрыми... smile 
PM MAIL Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.