There has been a critical error в процессе старта терминала

 

При запуске получил вот такую ошибку.

Этому предшествовало нажатие пользователем кнопки Reset на системнике.

Почитал форум на эту тематику -- ничего не нашел.

Но, самое интересное, что этот терминал без проблем запускается на другой машине и на третьей (папка находится на переносном HDD).

Поковырявшись нашел проблемный файл, на котором спотыкается загрузка \profiles\default\chart02.chr

После зачистки этого профиля загрузка проходит успешно.

Несколько раз сам воспроизводил эту ошибку.

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


There has been a critical error

Time : 2011.07.02 19:51
Program : Client Terminal
Version : 4.00 (build: 220, 7 Nov 2008)
OS : Windows XP Professional 5.1 Service Pack 3 (Build 2600)
Processors : 2 x X86 (level 6)
Memory : 2061360/1196724 kb
Exception : C0000005
Address : 004750D4
Access Type : write
Access Addr : 102A5000

Registers : EAX=00000046 CS=001b EIP=004750D4 EFLGS=00010202
: EBX=102A5018 SS=0023 ESP=001240DC EBP=03546FC8
: ECX=00000006 DS=0023 ESI=00124F7C FS=003b
: EDX=00124F9C ES=0023 EDI=102A5000 GS=0000

Stack Trace : 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000

Modules :
1 : 00400000 004F6000 f:\personal data\my folders\metatrader4_trm0\terminal.exe
2 : 03A80000 002CD000 c:\windows\system32\xpsp2res.dll
3 : 08000000 00008000 c:\program files\yandex\punto switcher\pshook.dll
4 : 5B260000 00038000 c:\windows\system32\uxtheme.dll
5 : 61EC0000 0000E000 c:\windows\system32\mfc42loc.dll
6 : 71A80000 00008000 c:\windows\system32\ws2help.dll
7 : 71A90000 00017000 c:\windows\system32\ws2_32.dll
8 : 73D90000 000FE000 c:\windows\system32\mfc42.dll
9 : 746E0000 0004C000 c:\windows\system32\msctf.dll
10 : 75310000 0002E000 c:\windows\system32\msctfime.ime
11 : 76350000 00005000 c:\windows\system32\msimg32.dll
12 : 76360000 0001D000 c:\windows\system32\imm32.dll
13 : 76380000 00049000 c:\windows\system32\comdlg32.dll
14 : 76B20000 0002E000 c:\windows\system32\winmm.dll
15 : 76C80000 00028000 c:\windows\system32\imagehlp.dll
16 : 77110000 0008B000 c:\windows\system32\oleaut32.dll
17 : 773C0000 00103000 c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
18 : 774D0000 0013D000 c:\windows\system32\ole32.dll
19 : 77C00000 00058000 c:\windows\system32\msvcrt.dll
20 : 77DC0000 000AC000 c:\windows\system32\advapi32.dll
21 : 77E70000 00092000 c:\windows\system32\rpcrt4.dll
22 : 77F10000 00049000 c:\windows\system32\gdi32.dll
23 : 77F60000 00076000 c:\windows\system32\shlwapi.dll
24 : 77FE0000 00011000 c:\windows\system32\secur32.dll
25 : 7C800000 000F8000 c:\windows\system32\kernel32.dll
26 : 7C900000 000B0000 c:\windows\system32\ntdll.dll
27 : 7C9C0000 0081B000 c:\windows\system32\shell32.dll
28 : 7E360000 00091000 c:\windows\system32\user32.dll

Call stack :
Файлы:
profiles.zip  846 kb
 
Искать надо по коду ошибки C0000005
 
Silent:
Искать надо по коду ошибки C0000005
Что искать? Это access_violation, нарушение доступа к памяти, явный баг. Что по нему искать? Lasso сделал всё, чтобы воспроизвести ошибку, дальше ход разработчиков.
 
ага на 220 билде...
 

С битым файлом профиля терминал дает критическую ошибку.

Просто интересно - какой ход вы ждете от разработчиков? Сделать возможность грузиться без профиля?

 

Да, на билд я не посмотрел. Такие вещи надо всегда на свежаках тестить...


Silent:

С битым файлом профиля терминал дает критическую ошибку.

Просто интересно - какой ход вы ждете от разработчиков? Сделать возможность грузиться без профиля?

Ну, а просто выдать сообщение, что дескать "файл профиля 'такой-то' у вас битый и работать с ним невозможно. Создать новый? да/нет". Если да - создаём новый и работаем, если нет - выходим. Меседж нужен, чтобы юзер мог при необходимости забекапить этот файл.

Всё ж лучше и понятнее, чем падение, верно?

Ну или ничего не делать, дабы не рушить наглый и бессовестный миф, что МТ - глючная кривая поделка, на которую и самим разработчикам глубоко начхать. Тоже вариант.

 
Gorinych:

Ну, а просто выдать сообщение, что дескать "файл профиля 'такой-то' у вас битый и работать с ним невозможно. Создать новый? да/нет". Если да - создаём новый и работаем, если нет - выходим. Меседж нужен, чтобы юзер мог при необходимости забекапить этот файл.

А поскольку ошибку в памяти можно вызвать кривыми индикаторами, советниками, длл и хрен знает чем еще, то не надо обходиться полумерами, а следует ввести полноценную систему самодиагностики, все предварительно проверяющую, и только после проверки запускающую терминал...

И вообще, дайте МТ гаджет, прямой и безглючный.

 

Да бросте флудить уже ;) Если access_violation даёт скриптовый код - это дыра в интерпретаторе и её однозначно надо чинить (скрипт на то и скрипт, чтобы изолировать юзера от подобных сюрпризов). Если внешняя длл - то, да, тут юзер сам виноват, но и это легко ловится (что метаквотесы уже в последних билдах и сделали, если я ничего не путаю). Ладно, надоело; на этом общение с вами заканчиваю.

Причина обращения: