Re[50]: Вопрос к Vlad2: Nemerle & R#
От: WolfHound  
Дата: 30.03.06 11:27
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Ну-ну. Работает и пусть работает. Ты мне еще расскажи, что статическая типизация на 99% устраняет необходимость тестирования приложений. Что после успешной компиляции нужно проверить всего две вещи -- что программа успешно стартует и столь же успешно завершается. Если эти условия выполняются, значит все работает корректно.

Ты можешь не верить но когда я пишу на C# все примерно так и происходит. Я могу несколько дней долбить код без компиляции. После компиляции (как правило все компилируется сразу ибо ReSharper рулит) и устранении пары исключений (причем на C#2 и этого скорей всего не понадобится ибо генерики) все действительно работает как надо.
Чего не скажешь про С++ в котором наведенку можно ловить произвольное колличество времени.

E>Я просто хотел понять, что делать в случае, когда я вижу, что некий макрос, производящий compile-time вычисления подставляет мне в код явно не правильную константу. Причем делает это он не всегда, а один раз в некотором месте исходного кода.

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

E>Я не понимал, как войти в отладку кода макроса, когда этот код работает в отдельном параллельном процессе ncc. Оказалось, что провоцируется отладка процесса компилятора путем подстановки в код макроса специальных провоцирующих отладку инструкций (вроде Assert(false)). После этого стало понятно. Напомнило, как некоторые товарищи в C/C++ код вставляли asm { int 3h; } (вроде так).

Тебе уже раз 10 сказали что это один из способов причем не самый удобный.

E>Только для этого способа, как я понимаю, нужно иметь компилируемый исходный код макроса чтобы вставить в него Assert(false) и перекомпилироваться.

А что ты без исходного кода отлаживать то будешь? Я конечно понимаю что можно отлаживать и исполняемый код... я и сам этим занимался но это такой геморой что лучше с этим не связываться.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.