Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
 Приложение has stopped working Vista/2008  [new]
Дмитрий77
Member

Откуда:
Сообщений: 4457
Столкнулся со следующей проблемой:
Есть некое приложение Open Sorce (консольное) + немного переделывал под себя.
В XP/2003 проблем никогда не было.
В висте и в 2008 стабильно возникает след.проблема:
Все нормально запускается, делает все что требуется, но под конец работы стабильно выдает:

<proga>.exe has stopped working

В висте:
Сигнатура проблемы:
  Имя события проблемы:	APPCRASH
  Имя приложения:	<proga>.exe
  Версия приложения:	0.0.0.0
  Штамп времени приложения:	4a0f4f2a
  Имя модуля с ошибкой:	ntdll.dll
  Версия модуля с ошибкой:	6.0.6001.18000
  Штамп времени модуля с ошибкой:	4791a7a6
  Код исключения:	c0000005
  Смещение исключения:	0006a8a9
  Версия ОС:	6.0.6001.2.1.0.256.6
  Код языка:	1049
  Дополнительные сведения 1:	aebf
  Дополнительные сведения 2:	098c521c3293eb57b0ec98a43c1f38bc
  Дополнительные сведения 3:	b2d7
  Дополнительные сведения 4:	7ac82aa5b0f37dde1d05f25c7bafbb61

Прочтите заявление о конфиденциальности:
  http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x0419

В win2008 по сути тоже самое:
Problem signature:
  Problem Event Name:	APPCRASH
  Application Name:	<proga>.exe
  Application Version:	0.0.0.0
  Application Timestamp:	4a0f4f2a
  Fault Module Name:	ntdll.dll
  Fault Module Version:	6.0.6001.18000
  Fault Module Timestamp:	4791a7a6
  Exception Code:	c0000005
  Exception Offset:	0006a8a9
  OS Version:	6.0.6001.2.1.0.274.10
  Locale ID:	1049
  Additional Information 1:	aebf
  Additional Information 2:	098c521c3293eb57b0ec98a43c1f38bc
  Additional Information 3:	b2d7
  Additional Information 4:	7ac82aa5b0f37dde1d05f25c7bafbb61

Read our privacy statement:
  http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x0409

Пробовал выключать DEP. Иногда "проскакивает" без ошибки, иногда тоже самое, но с очень хорошей вероятностью.
Пробовал компилировать в XP(VC++2005) и в WIN2008(VC++2008). Результат все тот же.

Коды все имеются, но что-то предпринимать не зная куда копать дело гиблое, т.к. коды достаточно громоздские и сложные даже для понимания.

Есть ли соображения как подходить к этой проблеме?
М.б. на форуме C++ продублировать?
В google понятно рылся, понял что такое бывает, типа обращайтесь к производителю за новой версией, но в данном случае все исх.коды при мне, но чего в них копать не знаю.
19 май 09, 21:24    [7200838]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51767

Дмитрий77

Есть ли соображения как подходить к этой проблеме?

При появлении такого сообщения на нём есть кнопка "Debug" (если
установлен VC). Нажимать на неё не пробовал?

Posted via ActualForum NNTP Server 1.4

19 май 09, 21:31    [7200856]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Дмитрий77
Member

Откуда:
Сообщений: 4457
Предлагается лишь "Check online for a solution and close the program" и "Close the programm". На win2008(ENG) установлен Microsoft Visual C++ 2008 Express Edition. При нажатии на первую кнопку Windows чего-то там "checking" секунд 5, потом все закрывается.

На Висте(РУС) из программных сред установлен лишь классический VB6, C++ нет ни в каком виде, но внешний вид окна в плане кнопок ничем не отличается кроме языка.
19 май 09, 21:48    [7200925]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Дмитрий77
Member

Откуда:
Сообщений: 4457
Или надо debug-версию попытаться скомпилировать, я всегда делаю Release...?
19 май 09, 21:49    [7200933]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51767

Проще будет запустить под отладчиком.

Posted via ActualForum NNTP Server 1.4

19 май 09, 22:05    [7200975]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Дмитрий77
Member

Откуда:
Сообщений: 4457
Под отладчиком это как?
Во-первых там куча параметров в командной строке. Правильно я понимаю, что код придется переписать таким образом, чтобы значения были забиты на момент отладки?

И что такое отладчик? Где его взять? Я знаком с VC++6, VC++2005 Express (VC++2008 судя по всему тоже самое). Всегда стараюсь компилировать Release (смысл debug не понимаю кроме большого размера файла), при возникновении errors при компиляции тыкаюсь в код, стараюсь найти причину и исправить, предупреждения обычно игнорирую. C++ знаю слабенько, но частенько правлю чужие коды, при этом иногда делаю это очень примитивно.
19 май 09, 22:23    [7201019]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Дмитрий77
Member

Откуда:
Сообщений: 4457
Ну хорошо,запустил proga.exe
В vc++2008 выбрал debug->attach to process->proga.exe
Выдало оно мне в коварном месте:
Unhandled exception at 0x7786a8a9 in proga.exe: 0xC0000005: Access violation writing location 0x01fbd28c.
И ткнуло меня вот в это:
7786A8A9 66 89 4C C6 04 mov word ptr [esi+eax*8+4],cx
где
esi=32905640;eax=46876;cx=5838;
и что мне дальше с этим делать?
proga.exe (release)
Debug-exe компилируется, но в случае родного vc2008(на win2008) ругается на отсутствие msvcp(r)90.dll, а в случае компиляции на "чужом" vc2005 на xp ругается на отсутствие msvcp(r)80.dll
20 май 09, 00:54    [7201382]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51767

Дмитрий77
и что мне дальше с этим делать?

Искать к какой С-шной строке это относится и смотреть стэк вызовов.

Posted via ActualForum NNTP Server 1.4

20 май 09, 01:39    [7201418]     Ответить | Цитировать Сообщить модератору
 Re: Приложение has stopped working Vista/2008  [new]
Дмитрий77
Member

Откуда:
Сообщений: 4457
Даже и не знаю стоит ли продолжать в этом направлении...

Проблема решилась самым неожиданным образом...
Все работает без ошибок...
...В режиме "Совместимости с WIN98/ME" или "WIN95"
Причем не работает в совместимостях "XP", "2003", "NT", "2000".

То бишь установка такого ключа при инсталляции
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"D:\\Program Files\\Proga\\proga.exe"="WIN98"
спасает "отца русской демократии".

Надо теперь тестировать на устойчивость безошибочности работы...

Но данная прога при испытаниях на WIN98 год назад не работала, да и куда ей: она компилируется только в VC+2005 минимум и требует net.framework такой версии что на win98 поставить не удается. Т.е. работала только на XP/2003.

Я уже почти месяц как продолжаю удивляться вистовским подставам.
20 май 09, 02:12    [7201431]     Ответить | Цитировать Сообщить модератору
Все форумы / Windows Ответить