Небольшая моя утилита, которую я создал для личного использования (написана на C ++), вчера случайно вышла из строя (я использовал ее более 100 часов без проблем), и хотя я обычно не делаю этого, я был чувствовал себя немного предприимчивым и хотел попытаться узнать больше о проблеме. Я решил зайти в Event Viewer и посмотреть, что Windows записала о сбое:
Faulting application StraightToM.exe, version 0.0.0.0, time stamp 0x4a873d19
Faulting module name : StraightToM.exe, version 0.0.0.0, time stamp 0x4a873d19
Exception code : 0xc0000005
Fault offset : 0x0002d160,
Faulting process id: 0x17b4
Faulting application start time: time 0x01ca238d9e6b48b9.
Мой вопрос: что означает каждая из этих вещей, и как бы я использовал их для отладки моей программы? Вот что я знаю до сих пор: код исключения описывает ошибку, а 0xc0000005 - нарушение доступа к памяти (пытался получить доступ к памяти, которой он не принадлежал). Мне особенно интересно узнать больше о следующем:
- Что означает смещение ошибки? Означает ли это расположение в файле, где произошла ошибка, или это означает сборочную «линию», где произошла ошибка? Зная смещение ошибки, как бы я использовал такую программу, как OllyDbg, чтобы найти соответствующий код сборки, вызвавший ошибку? Или, что еще лучше, можно (легко) определить, какая строка кода в источнике C ++ вызвала эту ошибку?
- Очевидно, что отметка времени соответствует 32-битному времени UNIX во время сбоя, но что означает время запуска 64-битного приложения? Почему это было бы 64-битным, если отметка времени 32?
Обратите внимание, что я в основном программист на C ++, поэтому, хотя я кое-что знаю о сборке, мои знания об этом очень ограничены. Кроме того, это действительно не серьезная проблема, требующая решения (и также не легко воспроизводимая, учитывая характер программы), я просто использую это как предлог, чтобы узнать больше о том, что означают эти сообщения об ошибках. Большая часть информации об этих журналах сбоев, которую я нашел в Интернете, обычно предназначена для конечного пользователя, поэтому они не очень помогли мне (как программисту).
Заранее спасибо