Page 1 of 1

Вылетает при битом конфиге

PostPosted: Sun Oct 18, 2009 8:17 am
by edio
На данную ошибку уже много раз жаловались. Решил создать отдельный тред, так как причина, вроде бы, найдена.

ОС: Windows XP SP2
Железо: не важно
Словари: не важно

Описание: если файл config пустой, не полный, содержит ошибки, при запуске получаем окошко
MS Visual C++ Runtime Library Runtime Error!
This application has requested the Runtime to terminate it in unusual way. Please contact the application's support team for more information.


Как правило, конечно, файл имеет нулевой размер. Не обладая глубокими знаниями в области программирования, могу предположить, что случается такое, когда ОС при завершении работы, убивает процесс GoldenDict, когда тот пишет в файл конфига, не успевает закрывать его (как я понимаю, файл всегда открывается для записи).

Решение проблемы для пользователя: удалить конфиг и дать возможность голдендикту создать новый.

Re: Вылетает при битом конфиге

PostPosted: Sun Oct 18, 2009 11:03 am
by ikm
Внес изменения в SVN, благодаря которым вероятность возникновения данной ошибки должна быть практически нулевой. Однако я не тестировал Windows-часть изменения - соберите кто-нибудь и попробуйте.

Re: Вылетает при битом конфиге

PostPosted: Mon Oct 19, 2009 8:07 am
by Gloggy
ikm wrote:соберите кто-нибудь и попробуйте.


Под Windows не собирается:

D:/work/goldendict/src/config.cc:998: error: cannot convert `QChar*' to `const WCHAR*' for argument `1' to `BOOL MoveFileExW(const WCHAR*, const WCHAR*, DWORD)'

Re: Вылетает при битом конфиге

PostPosted: Mon Oct 19, 2009 11:22 am
by ikm
Да, я там опечатался малость :)

Re: Вылетает при битом конфиге

PostPosted: Tue Nov 17, 2009 9:38 pm
by Nivelir
У меня наверно уже третий раз возникла данная проблема - просто перестал запускаться ГД. При этом никаких окон с ошибками не появляется (процесс сам закрывается не отобразив ни главного окна, ни ошибки).
Интересно, что вызвать окно с ошибкой удалось только при запуске программы с помощью "Запуска от имени другого пользователя" (а там от текущего). :lol:

Решение проблемы для пользователя: удалить конфиг и дать возможность голдендикту создать новый.

Я не решился просмотреть весь файл конфига, чтобы определить битый ли он. Но приведённый выше метод не помог. Программа создала новый файл, но так и не запустилась.

В предыдущих случаях я просто устанавливал ГД заново. На этот раз прошерстил форум, удовлетворяющего ответа так и не нашёл.
Решил по такому случаю удалить из Application Data ещё и файл индекса. После их удаления словарь запустился.
Теперь сожалею, что удалил config, может вся проблема решается простым переиндексированием базы? :|

---------------------------------------------------------
О системе: Windows XP SP3
железо роли точно не играет, на другой конфигурации наблюдал такую же ошибку.


Словари по папкам:
Babylon BGL\
Babylon English-English (161 892 статей) \
Babylon_English.BGL 7,534,113

Babylon Russian-English (87 073)\
Babylon_Russian_English.BGL 4,912,956

Babylon Russisch-Deutsch Worterbuch (32 005)\
Russisch_Deutsch_Woerterbuch.BGL 2,360,375

Rus-Rus Большой энциклопедический словарь русского языка (71 343)\
Great_Encyclopedic_Glossary.BGL 9,049,629

Rus-Rus Толково-словообразовательный. Т. Ф. Ефремова (123 855)\
Efremova__Russian_Explanatory_.BGL 5,380,538


Lingvo DSL\
Deu-Rus Большой немецко-руский словарь (Лейна)\
deu-rus_Lein_and_1_1.ann 2,546
deu-rus_Lein_and_1_1.bmp 644
deu-rus_Lein_and_1_1.dsl 68,218,292
deu-rus_Lein_and_1_1_abrv.dsl 24,280
deu-rus_Lein_and_1_1_abrv.ann 114
LNGRUS.chm 90,893

Eng-Eng Oxford English Dictionary Full Edition\
OEDFull.dsl 136,753,924
OEDFull.ann 1,136

Eng-Rus Толковый большой англо-русский словарь Apresyan\
En-Ru-Apresyan.bmp 978
En-Ru-Apresyan.dsl 87,233,088
En-Ru-Apresyan.ann 1,084
En-Ru-Apresyan_abrv.dsl 30,426


StarDict DZ\
Ukr-Ukr Універсальний словник-енциклопедія (21 096).zip 3,034,893

total files 18 - total size= 324,629,909 Mb

Re: Вылетает при битом конфиге

PostPosted: Wed Nov 18, 2009 1:47 pm
by ikm
А в какой папке лежат сами словари на диске? В Program files\GoldenDict\content, или в какой-то сторонней?

Re: Вылетает при битом конфиге

PostPosted: Wed Nov 18, 2009 10:38 pm
by Nivelir
to ikm
Словари в c:\Program Files\GoldenDict\dictions\ а тут в папках по группам расширений.
А в content только стандартная папка morphology

Re: Вылетает при битом конфиге

PostPosted: Thu Jan 14, 2010 6:52 am
by Nivelir
Итак, вот оно, снова перестал запускаться ГД.
На этот раз у меня была припасена резервная копия файлов в Application Data/... (заархивировал после последней настройки и норм запуска ГД).
Теперь было с чем сравнить файлы. Во всём виноват оказался файл pid. Кеш был не виноват. config не изменялся за всё это время.
Конфигурация и версии прежние (см. выше).
Ссылка на архив с нормальным и битым пидом http://dl.dropbox.com/u/1854796/nab.zip