Здравствуйте, 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>>