Здравствуйте, hugo, Вы писали:
H>Привет всем!
H>Генерю DynamicMethod'ы, в Debug конфигурации тесты проходят нормально, в Release — падает один тест по System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. Win2003 Server SP2, .NET 3.5
H>Под Win2008 даже в Debug падает очень много тестов (но не все). Где грабли? Дело в выравнивании?
А как конфигурация проекта влияет на LCG?
Он генерится всегда "в Release", не поддерживает emit debug-инфы, да и наврядли она влияет на что-то.
Скорее просто ошибка в MSIL, поглядите что там генерится
любым визуализером DynamicMethod.
Здравствуйте, Пельмешко, Вы писали:
П>А как конфигурация проекта влияет на LCG?
П>Он генерится всегда "в Release", не поддерживает emit debug-инфы, да и наврядли она влияет на что-то.
Тогда почему именно изменение Debug -> Release выявляет этот баг? ИМХО если в нагенером MSIL'е что-то не так и он всегда в "Release", то должно падать всегда
П>Скорее просто ошибка в MSIL, поглядите что там генерится любым визуализером DynamicMethod.
Спасибо, щас гляну.
А>Не надо раньше времени упоминать про возможность багов в CLR, Windows, etc
А>Люди, часто не разобравшись со своим багом, начинают придумывать костыли мотивируя тем, что это обход бага MS
Согласен. Но бывает и так, что протрахаешься с чем-нибудь полтора дня, а потом оказывается это баг в компиляторе или дебаггере...
Хотя наверное, я с этим по роду деятельности чаще встречаюсь. Работать с текущими билдами студии — то ещё удовольствие
Совершенно перестаёшь доверять инструментам.