Размер стека у студии
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 26.03.08 10:43
Оценка:
Есть такая проблема: начиная с некоторого большого размера кода (например, строк 400-500 в InitializeComponents()) студия |вернее, компилятор) падает со StackOverflowException.

В ncc.exe там стоит специальная обработка: если мы работаем под MS.NET, то выделить бОльший стек (метров 12, кажется).

Вопрос: что за поток выполняет разбор файла на CodeDom (при открытии дизайнера, например). Конкретно имею в виду вызов Source.Parse(ParseRequest request)
Еще вопрос: как этому потоку изменить размер стека?
Таки еще один вопрос: если стек увеличить не удастся, что бум делать?
... << RSDN@Home 1.2.0 alpha 4 rev. 1022>>
--
Re: Размер стека у студии
От: Блудов Павел Россия  
Дата: 26.03.08 11:10
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Таки еще один вопрос: если стек увеличить не удастся, что бум делать?

Ну также и будем делать, как компилятор делает.
Вместо Source.Parse будет thread = System.Threading.Thread(Source.Parse, a_lot_of_stack) + thread.Start() + thread.Join()
Не особо большой overhead на фоне общей задумчивости дизайнера формочек.
... << RSDN@Home 1.2.0 alpha 2 rev. 872>>
Re[2]: Размер стека у студии
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 26.03.08 11:27
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Таки еще один вопрос: если стек увеличить не удастся, что бум делать?

БП>Ну также и будем делать, как компилятор делает.
БП>Вместо Source.Parse будет thread = System.Threading.Thread(Source.Parse, a_lot_of_stack) + thread.Start() + thread.Join()
БП>Не особо большой overhead на фоне общей задумчивости дизайнера формочек.

Самый умный, да? Я попробовал. Оно валится на любом размере кода. (правда, я оборачивал содержимое блока try в методе Check).
С твоим предложением, думаю, будет то же. Но надо проверить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1022>>
--
Re[2]: Размер стека у студии
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 26.03.08 11:45
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Таки еще один вопрос: если стек увеличить не удастся, что бум делать?

БП>Ну также и будем делать, как компилятор делает.
БП>Вместо Source.Parse будет thread = System.Threading.Thread(Source.Parse, a_lot_of_stack) + thread.Start() + thread.Join()
БП>Не особо большой overhead на фоне общей задумчивости дизайнера формочек.

Был неправ, вспылил. Теперь хотя бы сам файл Form1.Designer.n открывается (раньше и он падал). Дизайнер же начал падать вообще без предупреждения. Попробуй, может, у тебя лучше получится?
... << RSDN@Home 1.2.0 alpha 4 rev. 1022>>
--
Re[3]: Размер стека у студии
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.03.08 06:13
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ> Дизайнер же начал падать вообще без предупреждения. Попробуй, может, у тебя лучше получится?


Попробуй подключаться к отслеживаемому проекту включая при этом как мендежед, так и нэйтив отладку. Тогда будут ловиться неуправляемые исключения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.