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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> debugger для препроцессора. где раздобыть? 
V
    Опции темы
boostcoder
Дата 6.7.2011, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



всем привет.

часто использую препроцессор для кодогенерации. иногда объем препроцессорного кода достигает 2000 строк.
если где-то закрадывается ошибка, отыскать ее это целый квест smile 

посему вопрос: существует ли препроцессорный дебагер?

спасибо.

Добавлено через 3 минуты и 22 секунды
есть boost.wave. так же есть мысль, что с помощью этой либы можно реализовать дебаггер. но что-то лень..
может все же есть что-то готовое?
PM WWW   Вверх
afiskon
Дата 7.7.2011, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 31.3.2011
Где: Россия, Москва

Репутация: 1
Всего: 4



Препроцессор - в смысле обычные макросы или какую-то свою наработку? Уверены, что тут не имеет место преждевременная оптимизация или что-то в этом роде?
PM MAIL WWW   Вверх
boostcoder
Дата 7.7.2011, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(afiskon @  7.7.2011,  09:23 Найти цитируемый пост)
в смысле обычные макросы или какую-то свою наработку?

не уверен что понял...
вы видели макросы, объемом в тысячи строк? так вот для таких макросов и нужен дебаггер. ибо это уже не просто текстозамена, а настоящая программа на языке препроцессора.

PM WWW   Вверх
Earnest
Дата 8.7.2011, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



boostcoder, 
Какие ошибки ты имеешь в виду? Компиляции или уже выполнения? Честно сказать, с ошибками выполнения из за макросов давно не сталкивалась, т.к. привыкла все в скобки заключать. А вот когда не компилируется, просто прошу сгенерировать препроцессированный файл (с исходными строками в виде комментариев); ковыряться в нем - счастье небольшое, ибо туда все инклуды впихнуты; но иногда просто нет другого выхода, да и поиск помогает. В MS есть подобная опция, да и у других компиляторов должна быть.


--------------------
...
PM   Вверх
boostcoder
Дата 8.7.2011, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(Earnest @  8.7.2011,  14:26 Найти цитируемый пост)
Какие ошибки ты имеешь в виду? Компиляции

да, компиляции.

Цитата(Earnest @  8.7.2011,  14:26 Найти цитируемый пост)
просто прошу сгенерировать препроцессированный файл

так и делаю.
но там же черт ногу сломит..
мало того что нужно понять что не правильно генерится... нужно понять еще и почему, и как исправить... smile 
дебаггер был бы в самый раз.
PM WWW   Вверх
triclosan
Дата 8.7.2011, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 1
Всего: 12



имхо писать свой парсер надо
PM MAIL   Вверх
Earnest
Дата 9.7.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(boostcoder @  8.7.2011,  18:32 Найти цитируемый пост)
дебаггер был бы в самый раз. 

Какой же тогда дебагер, разве что компилятор дебажить, чего он сволочь не компилит...
Цитата(boostcoder @  8.7.2011,  18:32 Найти цитируемый пост)
мало того что нужно понять что не правильно генерится... нужно понять еще и почему, и как исправить... 

Ну... процесс поиска ошибок вообще штука недетерминированная и происходит где-то в районе позвоночника... 
Похоже, что ты слишком макросами увлекся, а ведь известно, что штука это ненадежная. Лучше уж шаблоны. Они, кстати, могут почти все, что и макросы. Только макросы выразительнее в коде, поэтому я их применяю в конце кодогенерации, а там уже ошибиться не так страшно.




--------------------
...
PM   Вверх
boostcoder
Дата 9.7.2011, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(Earnest @  9.7.2011,  14:38 Найти цитируемый пост)
Какой же тогда дебагер, разве что компилятор дебажить

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

Цитата(Earnest @  9.7.2011,  14:38 Найти цитируемый пост)
Лучше уж шаблоны

да. но в данном случае шаблонами тут не обойтись. как в этом примере: http://forum.vingrad.ru/index.php?showtopi...t&p=2224452
PM WWW   Вверх
Earnest
Дата 9.7.2011, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(boostcoder @  9.7.2011,  15:44 Найти цитируемый пост)
ну нет.

Ну, я и имела в виду, отлаживать не саму компиляцию, а препроцессинг. 
Цитата(boostcoder @  9.7.2011,  15:44 Найти цитируемый пост)
но в данном случае шаблонами тут не обойтись. 

Пример читать сил нет, слишком много букв  smile . Но думаю, что какой-то компромисс найти можно (сместив акцент в сторону макросов). Просто если слишком много макросов, то что-то не так с дизайном. Иногда действительно разумнее парсер написать... Или плюнуть на необходимость копипастить с небольшими изменениями.  Я тебе уже как-то говорила: ты слишком увлекаешься метапрограммированием и кодогенерацией... Такие штуки очень увлекательно писать, но когда приходит необходимость вернуться к ним, особенно через несколько лет, и подкрутить, начинаешь все проклинать. Я в своем приложении много чего переписала, выкинув нафик шаблоны-макросы (изыски прежних лет, инспирированные восхищением от знакомства с бустом), и сделав махонький копипаст... Во всем мера нужна, конечно... Короче, дизайн должен быть простым. И желательно, не ошибкоемким...


--------------------
...
PM   Вверх
boostcoder
Дата 9.7.2011, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(Earnest @  9.7.2011,  15:01 Найти цитируемый пост)
Но думаю, что какой-то компромисс найти можно

ага. перейти на ЯП с динамической типизацией.
но тут возникнет другая, более сложно уловимая ситуация: ошибки при работе с типами, придется вылавливать в run-time smile

в общем Вашу позиция понял.
спасибо.

Добавлено через 7 минут и 2 секунды
Цитата(boostcoder @  9.7.2011,  15:19 Найти цитируемый пост)
ага. перейти на ЯП с динамической типизацией.
но тут возникнет другая, более сложно уловимая ситуация: ошибки при работе с типами, придется вылавливать в run-time

но это на самом деле второстепенная проблема.
а первостепенная в том, что хорошо я не знаю ни одного ЯП с динамической типизацией smile
PM WWW   Вверх
baldina
Дата 9.7.2011, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 32
Всего: 101



Цитата(boostcoder @  9.7.2011,  15:19 Найти цитируемый пост)
перейти на ЯП с динамической типизацией.

какая связь между макросами и динамической типизцией?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.2142 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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