![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
всем привет.
часто использую препроцессор для кодогенерации. иногда объем препроцессорного кода достигает 2000 строк. если где-то закрадывается ошибка, отыскать ее это целый квест посему вопрос: существует ли препроцессорный дебагер? спасибо. Добавлено через 3 минуты и 22 секунды есть boost.wave. так же есть мысль, что с помощью этой либы можно реализовать дебаггер. но что-то лень.. может все же есть что-то готовое? |
|||
|
||||
| afiskon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 31.3.2011 Где: Россия, Москва Репутация: 1 Всего: 4 |
Препроцессор - в смысле обычные макросы или какую-то свою наработку? Уверены, что тут не имеет место преждевременная оптимизация или что-то в этом роде?
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
не уверен что понял... вы видели макросы, объемом в тысячи строк? так вот для таких макросов и нужен дебаггер. ибо это уже не просто текстозамена, а настоящая программа на языке препроцессора. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
boostcoder,
Какие ошибки ты имеешь в виду? Компиляции или уже выполнения? Честно сказать, с ошибками выполнения из за макросов давно не сталкивалась, т.к. привыкла все в скобки заключать. А вот когда не компилируется, просто прошу сгенерировать препроцессированный файл (с исходными строками в виде комментариев); ковыряться в нем - счастье небольшое, ибо туда все инклуды впихнуты; но иногда просто нет другого выхода, да и поиск помогает. В MS есть подобная опция, да и у других компиляторов должна быть. -------------------- ... |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
да, компиляции. так и делаю. но там же черт ногу сломит.. мало того что нужно понять что не правильно генерится... нужно понять еще и почему, и как исправить... дебаггер был бы в самый раз. |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 1 Всего: 12 |
имхо писать свой парсер надо
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Какой же тогда дебагер, разве что компилятор дебажить, чего он сволочь не компилит...
Ну... процесс поиска ошибок вообще штука недетерминированная и происходит где-то в районе позвоночника... Похоже, что ты слишком макросами увлекся, а ведь известно, что штука это ненадежная. Лучше уж шаблоны. Они, кстати, могут почти все, что и макросы. Только макросы выразительнее в коде, поэтому я их применяю в конце кодогенерации, а там уже ошибиться не так страшно. -------------------- ... |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ну нет. препроцессор генерит код используя макросы. так вот возможность просмотреть пошагово процесс разворачивания макросов и и их аргументы, сильно помог бы. да. но в данном случае шаблонами тут не обойтись. как в этом примере: http://forum.vingrad.ru/index.php?showtopi...t&p=2224452 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Ну, я и имела в виду, отлаживать не саму компиляцию, а препроцессинг. Пример читать сил нет, слишком много букв -------------------- ... |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ага. перейти на ЯП с динамической типизацией. но тут возникнет другая, более сложно уловимая ситуация: ошибки при работе с типами, придется вылавливать в run-time в общем Вашу позиция понял. спасибо. Добавлено через 7 минут и 2 секунды
но это на самом деле второстепенная проблема. а первостепенная в том, что хорошо я не знаю ни одного ЯП с динамической типизацией |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |