Логи сбоев
Я вижу примерно по одному вопросу в день о сбоях в игре, но, кажется, никто не знает, как использовать логи сбоев. Поэтому я решил написать небольшую статью. Я не все об этом знаю, но если Вы лишь пытаетесь выяснить, какая способность/предмет/юнит вызывает вылет, это практически всегда работает. Итак, начнем...
Когда игра зависает, Warcraft автоматически сохраняет два файла в папку Errors (C:\Program Files\Warcraft III\Errors). Один файл с расширением *.txt, другой - *.dmp. Остановимся на *.txt-файле. У каждого из них название представляет собой дату и время, так что открываем последний.
Там будет куча всего, но Вы можете пропустить большую часть. Обратите внимание на последний раздел - "Memory Dump". Там будет что-то вроде этого:
Цитата
0018E670: D6 31 26 6F 7D E9 14 2A 00 00 00 00 5C 36 43 13 .1&o}..*....\6C.
0018E680: 36 36 30 41 E0 00 A5 0F 68 E1 93 6F 80 F3 0C 03 660A....h..o....
0018E690: D7 3C 03 15 E1 78 AD 10 80 F3 0C 03 FF FF FF 7F .<...x..........
0018E6A0: A8 01 38 05 5C 9D 3A 05 C7 27 4D 6F E1 78 AD 10 ..8.\.:..'Mo.x..
0018E6B0: 76 65 72 73 69 6F 6E 00 0C 10 4D 6F 08 8A 94 6F version...Mo...o
0018E6C0: 00 00 00 00 C8 00 A5 0F B8 00 9F 10 08 8A 94 6F ...............o
0018E6D0: CD 28 4D 6F 08 8A 94 6F 80 F3 0C 03 2A 2B 4D 6F .(Mo...o....*+Mo
0018E6E0: 80 F3 0C 03 07 C5 30 6F 08 8A 94 6F 80 F3 0C 03 ......0o...o....
0018E6F0: B8 00 9F 10 00 00 00 00 19 C5 30 6F A4 C6 30 6F ..........0o..0o
0018E700: C8 00 A5 0F 00 00 00 00 70 97 14 2A 9C A7 4C 6F ........p..*..Lo
0018E710: 34 E7 18 00 B8 00 BA 0F 36 36 30 41 E0 00 A5 0F 4.......660A....
0018E720: 41 30 36 36 69 AB 4C 6F 34 E7 18 00 01 95 6F 6F A066i.Lo4.....oo
0018E730: 0D 95 6F 6F 41 30 36 36 00 00 9F 10 31 E8 14 2A ..ooA066....1..*
0018E740: 0C AB 6F 6F 4D E8 14 2A 00 00 00 00 FB AB 6F 6F ..ooM..*......oo
0018E750: 10 E9 18 00 21 CB 85 6F 55 EC 14 2A 84 8B 70 6F ....!..oU..*..po
0018E760: 6C E7 18 00 98 E7 18 00 10 97 14 2A 9C A7 4C 6F l..........*..Lo
0018E770: 00 00 00 00 B8 00 C4 0F 36 36 30 41 08 AA 6F 6F ........660A..oo
0018E780: 01 00 00 00 FC 97 14 2A 9C A7 4C 6F B8 E7 18 00 .......*..Lo....
0018E790: 36 36 30 41 85 E8 14 2A 4D AB 6F 6F 00 00 00 00 660A...*M.oo....
0018E7A0: 01 00 00 00 00 00 00 00 F8 E7 18 00 D3 00 26 6F ..............&o
0018E7B0: 00 00 00 00 8D E9 14 2A 10 E9 18 00 BB 4E 82 6F .......*.....N.o
0018E7C0: FF FF FF FF 92 31 26 6F 68 E1 93 6F D5 E8 14 2A .....1&oh..o...*
0018E7D0: 5C 36 43 13 44 36 43 13 00 00 00 00 36 36 30 41 \6C.D6C.....660A
0018E7E0: 68 E1 93 6F 00 00 00 00 00 00 00 00 00 00 00 00 h..o............
0018E7F0: 00 00 00 00 00 00 00 00 00 00 00 00 50 02 A5 0F ............P...
0018E800: 00 00 00 00 00 00 00 00 80 F3 0C 03 08 8A 94 6F ...............o
0018E810: 80 F3 0C 03 27 0D 31 6F 04 00 00 00 00 00 00 00 ....'.1o........
0018E820: 00 00 00 00 48 5D 02 15 04 00 00 00 E2 5D 02 15 ....H].......]..
0018E830: D0 B9 15 14 64 E8 18 00 00 00 15 14 E3 1E 36 39 ....d.........69
0018E840: F7 5F 02 15 C8 6C 05 15 04 00 00 00 30 F5 0C 03 ._...l......0...
0018E850: FE FF FF FF 00 00 00 00 BB 62 02 15 04 00 00 00 .........b......
0018E860: DC 62 A6 6F E3 00 00 00 10 00 00 00 04 00 00 00 .b.o............
0018E870: 30 F5 0C 03 01 00 00 00 00 00 00 00 84 F5 0C 03 0...............
0018E880: 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
0018E890: 1A DB 31 6F 01 00 00 00 1D E7 14 2A 82 0C 32 6F ..1o.......*..2o
0018E8A0: 80 F3 0C 03 08 8A 94 6F 00 00 00 00 80 F3 0C 03 .......o........
0018E8B0: 84 F5 0C 03 00 00 00 00 00 00 00 00 0C 00 00 00 ................
0018E8C0: 01 00 00 00 80 F3 0C 03 DD 32 32 6F 08 8A 94 6F .........22o...o
0018E8D0: 84 F5 0C 03 DD E7 14 2A CC 7F 89 03 64 F3 0C 03 .......*....d...
0018E8E0: 00 00 00 00 36 36 30 41 00 00 00 00 02 00 00 00 ....660A........
0018E8F0: 02 00 00 00 02 00 00 00 C8 66 EE 07 C0 EA 18 00 .........f......
0018E900: A8 EF 82 6F FF FF FF FF AB D3 32 6F E5 E8 14 2A ...o......2o...*
0018E910: C0 EA 18 00 BB 4E 82 6F 00 00 00 00 FC 62 26 6F .....N.o.....b&o
0018E920: 68 E1 93 6F 54 EA 18 00 36 36 30 41 00 00 00 00 h..oT...660A....
0018E930: A8 89 94 6F FF FF FF 7F 44 36 43 13 B8 00 9F 10 ...o....D6C.....
0018E940: 00 00 00 00 A8 89 94 6F FA 28 4D 6F 36 36 30 41 .......o.(Mo660A
0018E950: 0F 2B 4D 6F 3C F1 0C 03 3C F1 0C 03 9F CB 30 6F .+Mo<...<.....0o
0018E960: A8 89 94 6F 00 00 00 00 3C F1 0C 03 A8 89 94 6F ...o....<......o
0018E970: B4 F1 0C 03 B1 CB 30 6F C8 00 A5 0F 04 EA 18 00 ......0o........
0018E980: 28 0A C9 08 67 BE 4C 6F 5A 00 00 00 C1 00 00 00 (...g.LoZ.......
0018E990: 34 C9 D2 0F F0 E9 18 00 74 EB 18 00 41 9A 4C 6F 4.......t...A.Lo
0018E9A0: 5A 00 00 00 C1 00 00 00 54 EA 18 00 36 36 30 41 Z.......T...660A
0018E9B0: 00 00 00 00 9F 69 26 6F 35 E6 14 2A AA 69 26 6F .....i&o5..*.i&o
0018E9C0: 14 EA 18 00 36 36 30 41 C2 69 26 6F 14 EA 18 00 ....660A.i&o....
0018E9D0: 54 EA 18 00 03 FE 24 6F EC E9 18 00 05 00 00 00 T.....$o........
0018E9E0: 24 59 BF 10 FE C7 65 13 3E 00 00 00 00 00 00 00 $Y....e.>.......
0018E9F0: 00 00 00 00 E0 BE 30 6F 14 8D DA 07 14 00 00 00 ......0o........
0018EA00: 5C 00 00 00 74 F2 0C 03 00 00 00 00 00 00 00 00 \...t...........
0018EA10: 00 00 00 00 44 61 74 61 41 36 00 00 00 00 00 00 ....DataA6......
0018EA20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018EA30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018EA40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018EA50: 00 00 00 00 41 30 36 36 00 00 00 00 00 00 00 00 ....A066........
0018EA60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
На первый взгляд, полная бессмыслица. Но посмотрите на крайний столбец справа. В нем повторяется одна и та же последовательность букв и цифр. Это raw-код того, что вызвало вылет. Иногда WC3 "переворачивает" его, а иногда пишет правильно. В этом примере Вы снова и снова видите 'A066' и '660A'. То есть это то, что Вы искали. Теперь, когда у Вас есть raw-код, Вы можете найти причину ошибки. Если Вы не знаете, как сверить raw-код, войдите в Редактор Объектов, нажмите "Ctrl + D", "Ctrl + F" и затем введите raw-код.
- Если Ваш raw-код начинается с 'A', то это способность (Ability).
- Если Ваш raw-код начинается с 'h', 'o', 'u', 'e' или 'n', то это юнит (Human, Orc, Undead, Night Elf или Neutral).
- Если Ваш raw-код начинается с 'B', то это заклинание (Buff).
- Если Ваш raw-код начинается с 'R', то это улучшение (Upgrade).
Скорее всего, этот гайд не будет всегда работать, но эта маленькая хитрость помогла мне устранить бесчисленные проблемы.
Click here to comment on this tutorial.