|
Флудильня Разговоры на любые темы. Мы устаем постоянно работать. Иногда надо где-то немного отдохнуть. Пожалуйста, не надо здесь устраивать бардак. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
23.07.2010, 15:47 | #1 |
Гость
Сообщений: n/a
|
подавление окон сообщение об ошибке
Собственно, после неверного завершения работы, к примеру worldserver.exe, вылазеет окошко с предложением отладить данную программу, в связи с этим приложение считается не полностью закрытым, т.е. оно ожидает от нас действия что можно с ним сделать.
Из-за этого, рестартер не понимает, что сервер упал (сервер упал ведь тогда, когда worldserver.exe закрылась), и не перезагружает заново. ------ Собственно сам вопрос: Как отключить отладчика, чтобы не вылезала больше данное сообщение.. (Наверняка, у многих где стоит игровой сервер, установлен какой либо визуал студия (mvs 2005/2008).) Изображение прилагается. http://filebeam.com/129a9ef00d86c525...e6a0eca3f6.jpg |
23.07.2010, 16:18 | #2 |
just a lazy user
Регистрация: 07.03.2010
Адрес: Киев
Сообщений: 31
Сказал(а) спасибо: 48
Поблагодарили 31 раз(а) в 11 сообщениях
|
Это не зависит от того, установлена VS или нет. Так бы вылазило окно "Отправлять\Не отправлять". Сконфигурировать это в Windows мне не удавалось, есть конечно мануалы, как убрать это окно, и т.п., но результат приводит к тому, что вылазит всё то же окно, только вместо кнопок "Не отправлять" и "Отправлять" там одна кнопка "ОК".
Можно сделать в самом мангосе, переделав немного хендлер критических ошибок.
__________________
Так как нету кнопки "Фууу", скажу вам прямо... (c) |
23.07.2010, 16:20 | #3 |
Ученый
|
Это не зависит от MS VS.
Это дефолтовое окно винды, сообщающее об ошибке в программе. Студия лишь добавила в это окошко свою кнопочку "отладка". Кури маны на семёрку (это ведь семёрка, верно?).
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет |
24.07.2010, 11:01 | #4 |
Гость
Сообщений: n/a
|
Хм, но почему же тогда до установки визуал студии, данное окно не появлялось?
Что касается окошко, с "Не отправлять " и "отправлять", то оно отключается в сис. настройках. Что и было сделано. --- Но после установки визуал студии, он пытается её отладить, на мой взгляд, это зависит от MS VS, т.к. до него, данной проблемы не было, а значит, MS VS занесла в реестр сведение, что нужно вновь открывать окно после неверного завершения программы.. Как то так/ |
24.07.2010, 12:08 | #5 |
just a lazy user
Регистрация: 07.03.2010
Адрес: Киев
Сообщений: 31
Сказал(а) спасибо: 48
Поблагодарили 31 раз(а) в 11 сообщениях
|
Спасибо, я знаю, что оно отключается, но у меня ни разу не удавалось по-нормальному его отключить. Погугли про Just-In-Time Debugger'ы в винде, найди где настройки в реестре, и убери оттуда студию.
__________________
Так как нету кнопки "Фууу", скажу вам прямо... (c) |
24.07.2010, 12:22 | #6 |
Новичок
Регистрация: 14.05.2010
Адрес: Moskow
Сообщений: 29
Сказал(а) спасибо: 14
Поблагодарили 36 раз(а) в 11 сообщениях
|
Виндоус 2008 сервер у него, наверное.
Отчеты об ошибках отключаются в локальной групповой политике. Пуск - выполнить - gpedit.msc - конфигурация компьютера -административные шаблоны - компоненты windows - отчеты об ошибках windows В списке справа включи "не отправлять дополнительные данные" и "отключить отчеты об ошибках windows". |
24.07.2010, 12:37 | #7 |
just a lazy user
Регистрация: 07.03.2010
Адрес: Киев
Сообщений: 31
Сказал(а) спасибо: 48
Поблагодарили 31 раз(а) в 11 сообщениях
|
Не знал, спасибо за информацию. Но у него, насколько я понял, это отключено уже. Вылазит маленькое окошко с предложением запустить дебаггер и кнопки "Да", "Нет".
__________________
Так как нету кнопки "Фууу", скажу вам прямо... (c) |
24.07.2010, 17:33 | #8 |
Пользователь
Регистрация: 08.03.2010
Сообщений: 47
Сказал(а) спасибо: 45
Поблагодарили 29 раз(а) в 13 сообщениях
|
Это MDM.
Machine Debug Manager Supports local and remote debugging for Visual Studio and script debuggers. If this service is stopped, the debuggers will not function properly. Для лайв сервера идём в Администрирование->Службы, Machine Debug Manager, и ставим тип запуска Выключено. |
25.07.2010, 14:16 | #9 |
Гость
Сообщений: n/a
|
Всем спасибо друзья.
Удалил путь к ms vs, стало выскакивать окно только с вариантом "Закрыть программу" Как я понял, так же за это, отвечает служба "отладчик Dr. Watson". Скачал программу, которая отключает "отладчика Dr. Watson".. будем пробывать |
25.07.2010, 14:50 | #10 | |||
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Цитата:
Цитата:
Можно дать ссылку (или в аттач сунуть) эту "программу, которая отключает...." на предмет поиска тараканов? На всякий случай вот еще крайне полезный твик: Цитата:
HungAppTimeout = 500 WaitToKillServiceTimeout = 2000
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|||
26.07.2010, 17:59 | #11 | |
Гость
Сообщений: n/a
|
Цитата:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ отчеты об ошибках Windows \ DontShowUI поменяй на 1 и всё гуд |
|
26.07.2010, 20:53 | #12 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
В указанной ветке *HKCU\Software\Microsoft\Windows\* есть только ветки CurrentVersion, Shell и ShellNoRoam. Ветки "отчеты об ошибках Windows" не существует. Более того - полным поиском по реестру вообще не найден параметр "DontShowUI".
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
27.07.2010, 13:20 | #13 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
Насколько я помню, окно с предложением отладить приложение в котором произошла ошибка появляется если установлен системный отладчик. Visual Studio естественно устанавливает себя в качестве отладчика по умолчанию.
|
27.07.2010, 14:00 | #14 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Отладчиком в голой венде является DrWatson, он и выкидывает окно (после нажатия кнопки в диалоге "чоделать"). При установке VS - он выдает свое окно, которое можно отключить в настройках. Вот только диалоговое окно типа "у вас ошибка - чоделать" появляется вне зависимости от того, какой отладчик стоит (потому что оно появляется перед отладчиком). А отключение в венде "отчета об ошибках" - никак не относится к данному диалоговому окну (как ни жаль).
(где я тут облажался?)
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
27.07.2010, 15:44 | #15 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
DrWatson не является отладчиком в полном смысле. Он просто регистрируется для получения управления после краха приложения, он скидывает данные об ошибке в лог.
Есть такая ветка в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug В ней прописан отладчик который вызывается, и параметр Auto - если он 1, то отладчик загрузится автоматически, если 0 - то будет окошко с вопросом. Осталось выяснить как совсем убрать окошко |
27.07.2010, 16:17 | #16 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
В общем как известно безвыходных ситуаций не бывает
немного подумав ... Если написать вот такой загрузчик приложения, то диалоговое окно с ошибкой вылазить не будет, инфа 100% Код:
int _tmain(int argc, _TCHAR* argv[]) { SetErrorMode(SEM_NOGPFAULTERRORBOX); STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); if (!CreateProcess(_T("d:\\test.exe"),NULL,NULL,NULL,TRUE,0,NULL,NULL,&si,&pi)) { printf("CreateProcess failed (%d).\n", GetLastError()); return 0; } WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; } 1) SetErrorMode(SEM_NOGPFAULTERRORBOX); - отключает диалоги об ошибках в текущем приложении. 2) CreateProcess(_T("d:\\test.exe"),NULL,NULL,NULL,TRUE,0,NULL,NULL,&si,&pi)) параметр TRUE - обязателен, это флаг наследования дочерним процессом всех свойств процесса родителя. Без него все равно вылезет окно об ошибке вместо test.exe - собственно ваше приложение, я накатал пример который пишет в память по нулевому адресу, соответственно вызывая крах приложения Память по адресу 0х000000000 не может быть written З.Ы. А, ну собственно первую строчку надо вставить в сервер мангоса, и все будет тип топ, ошибка вылазить при крахе не будет, и рестартер спокойно его перезапустит. Последний раз редактировалось Йоха; 27.07.2010 в 16:31. |
27.07.2010, 17:36 | #17 | |
forum bot
Регистрация: 06.03.2010
Сообщений: 6
Сказал(а) спасибо: 5
Поблагодарили 40 раз(а) в 11 сообщениях
|
Цитата:
Угу, собственно об этом и страдаем... А в какое конкретно место? |
|
27.07.2010, 18:39 | #18 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
че страдать то ? решение найдено
в любое, главное что бы она выполнилась до краха |
27.07.2010, 18:44 | #19 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Ответ "в любое", без конкретизирования, обычно означает "в никакое". Если я вставлю в "любое" - ессно ничего не будет компилиться. Только в папке src/game порядка 280 файлов. Вопрос - в какое именно место вставлять? Патчем выложите пожалуйста.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
27.07.2010, 18:46 | #20 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
ну вот зачем разводить демагогию ?
функция SetErrorMode() - стандартная функция WINAPI, я надеюсь в проект мангос (версия для вин) включен заголовок windows.h ? ну и все, какие проблемы все будет компилиться. в любой программе на "с" есть функция main() вот прямо первой строчкой и вставляйте если выше я непонятно написал Цитата:
Вот оригинал из MSDN : Код:
SEM_NOGPFAULTERRORBOX 0x0002 The system does not display the Windows Error Reporting dialog. сделайте консольное приложение такое Код:
int _tmain(int argc, _TCHAR* argv[]) { //SetErrorMode(SEM_NOGPFAULTERRORBOX); int *ptr = NULL; *ptr = 1; return 0; а теперь разкомментируйте первую строчку и запустите еще раз все ясно ? Последний раз редактировалось Йоха; 27.07.2010 в 19:00. |
|
27.07.2010, 19:00 | #21 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Большое спасибо за понятное объяснение.
Приятно, когда находятся люди, готовые тратить на это время.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
28.07.2010, 09:16 | #22 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
очень жаль что таких людей тут можно по пальцам одной руки пересчитать.
|
28.07.2010, 11:21 | #23 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Все решили проигнорировать пост с упоминанием про редактор групповых политик, а зря.
А вот ключи реестра, про которые говорили: http://technet.microsoft.com/en-us/l...8WS.10%29.aspx http://technet.microsoft.com/en-us/l...8WS.10%29.aspx |
28.07.2010, 13:03 | #24 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
Цитата:
|
|
28.07.2010, 13:18 | #25 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
|
28.07.2010, 13:41 | #26 |
WowCore Dev
Регистрация: 11.03.2010
Сообщений: 112
Сказал(а) спасибо: 10
Поблагодарили 51 раз(а) в 25 сообщениях
|
|
28.07.2010, 13:45 | #27 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
28.07.2010, 13:46 | #28 | |
Ученый
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
|
Цитата:
|
|
28.07.2010, 14:03 | #30 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Пруф? Отчетов об ошибках там тоже нету?
Создать их вручную религия не позволяет? Последний раз редактировалось zergtmn; 28.07.2010 в 14:08. |
28.07.2010, 14:34 | #31 | |
Ученый
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
|
http://technet.microsoft.com/en-us/l...8WS.10%29.aspx
Цитата:
|
|
28.07.2010, 16:36 | #32 | |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Цитата:
|
|
04.08.2010, 09:03 | #33 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
редактор групповых политик отсутсвует на home версиях винды. Начиная от проф и выше, он есть везде
|
04.08.2010, 15:10 | #34 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Цитата:
Угу - есть. Но не отрабатывают. Или я опять не ту галку поставил (как всегда).
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
06.08.2010, 18:00 | #35 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Locate the key:
Код:
HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Windows \ ErrorMode then locate Код:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Windows Error Reporting \ DontShowUI This is tested with Windows 2008 Server Edition. Should work with Vista/Win7 as well. prooflink
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибке при запуске ядра | Maximus | Корзина | 3 | 21.03.2010 21:03 |