Итак,решил написать небольшой FAQ по ошибкам.
Что такое ошибка?
Для начала про компилируемость языка
Исходный код(от разработчика) преобразуется в исполняемый файл.
Что такое исполняемый файл?в Windows это так называемый PE формат.
Обработчик Windows должен корректно прочитать все данные из PE заголовка,IAT таблицу(какие dll файлы должна загрузить система)
прочитать данные о секциях(что такое секции?места для кода и данных,а также ресурсов)а также о доступе к этим секциям.
Если всё корректно,то программа запуститься-если нет вылезет сообщение об ошибке.
И это первая возможная причина,если на ваш компьютер попадёт вирус или что-то изменяющее PE файлы то для начала нужно вылечить систему от вирусов и целиком переустановить приложение или игру.
Пользуйтесь хорошим антивирусом типа Kaspersky,он часто может вылечить заражённый файл.
В процессе выполнения программы(или игры) на вашей системе можно произойти так называемое "исключение" например внезапно может произойти деление на ноль или доступ к секции на которой нет доступа.
Но исключения обрабатывает обработчик исключений Windows,который "перехватывает"управление программой и пытается исправить ошибку и в большинстве случаев ему это удаётся.
Это делается автоматически и вам ничего не надо делать и как-то в это вмешиваться.
Есть также пользовательские обработчики ошибок,которые может установить разработчик-но как правило это делается для "особых"ошибок и не пытается исправить критические ошибки.
Если пользовательский обработчик ошибок не справляется,управление передаётся обработчику ошибок Windows.
Но если ошибка всё таки случилась,значит обработчик исключений не смог обработать это исключение и это уже что-то критическое.
Что делать?
Если ошибка повторяется то можно скачать x64dbg ,это бесплатный отладчик приложений и запустить программу(или игру)до появления ошибки!
Потом смотрите вот сюда
И гуглите свою ошибку,что она значит.
Обратите внимание,в логе,где ошибка происходит-после какой dll или exe файла.
Если проблема в exe файле,переустановить игру или приложение.
Если проблема в dll,часто это ошибка в Microsoft Visual C++ Redistributable переустановите данный пакет.
Но только с официальных сайтов,не пользуйтесь всякими левыми сайтами по запросу "скачать dll".
Единственное исключение это вот оно очень хороший сборник.
Ещё бывает проблема не связана с исключениями,а с выводом каких-то сообщений.
Если проблема не решается,вы можете попробовать её исправить(но это не точно).
1)Убедитесь что вы находитесь не в dll а в основной программе.
Как перейти к основной программе?
Узнайте имя файла,например dota2.exe и найдите её в Карте памяти.
Поставьте брейкпоинты на Message.Как?
И далее
Далее кликаем сюда
И далее(если повезёт)запускаем dota2.exe(к примеру)доходим до ошибки-дальше ищите вверху(от того где остановились) команды типа je jne jnz или test что-то или cmp а потом jxx(вместо xx могут быть разные значения).
Далее берёте какой-нибудь справочник по ассемблерным командам и пытаетесь понять что к чему.
Вот простой пример:
Если ошибка появляется в этом месте(сначало запустите и нажмите F9)!Видите ошибку?Тогда меняете jne на jmp и пробуете снова.
Дважды щёлкаете или через пробел и изменяете на jmp.
И жмёте на OK.
Жмёте снова F9!Ошибка исчезла?Поздравляю!
Проблема может быть решена.
Вот такой небольшой но хороший способ борьбы с разными тупыми сообщениями.
Ставьте лукасы,извиняюсь за длиннопост-пытался написать простую инструкцию из того что видел в разных видеокурсах по отладке.