Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Декодирование крашрепорта  (Прочитано 11300 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dimedrol
Помогающий

ru
Offline Offline

« : 15-12-2015 07:38 » 

День добрый, имеется win 2012 server, под ним хитро падает программа, соотвественно вылетает окошко с информацией об ошибке:
Код:
Problem signature:
  Problem Event Name: APPCRASH
  Application Name: prog.exe
  Application Version: 1.0.0.4
  Application Timestamp: 556eb012
  Fault Module Name: ntdll.dll
  Fault Module Version: 6.3.9600.17278
  Fault Module Timestamp: 53eeb4a3
  Exception Code: c0000005
  Exception Offset: 0001d4f1
  OS Version: 6.3.9600.2.0.0.400.8
  Locale ID: 1049
  Additional Information 1: 5861
  Additional Information 2: 5861822e1919d7c014bbb064c64908b2
  Additional Information 3: 84a0
  Additional Information 4: 84a09ea102a12ee665c500221db8c9d6
очень интересует декодирование полей Exception Offset и Additional Information, что именно они означают? Пробовал дизасмить ntdll и глядеть по смешению 0001d4f1 - но там сплошь инструкции, которые ен могут вызвать access violation, т.е. этот оффсет применяется как-то по другому.
Записан

Как говориться, cемь бед - один Reset Улыбаюсь
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 16-12-2015 06:24 » 

dimedrol, что за программа то? Твоя, с исходниками ?

Exception Offset, мне кажется, ничего не даст  - это же адрес в озу. А код c0000005 - это попытка доступа к кривой памяти

Если программа твоя, попробуй в режиме отладки поймать место ошибки
Записан

dimedrol
Помогающий

ru
Offline Offline

« Ответ #2 : 16-12-2015 12:25 » 

Если все было бы так просто... программа моя, но под отладкой не проявляется. В общем, пораскинув мозгами, нашел ошибку в логике, в дизасме ntdll я искал инструкцию по смещению "адрес секции кода+Exception Offset", а нужно было "Image base+Exception Offset". Теперь есть ниточка куда копать.
Однако про Additional Information вопрос открыт. Логично предположить что это дамп регистров или стека, но точно не сказать.
« Последнее редактирование: 16-12-2015 12:28 от dimedrol » Записан

Как говориться, cемь бед - один Reset Улыбаюсь
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 17-12-2015 05:19 » 

dimedrol, забавный подход к отладке

Попробуй искать ошибку в программе, а не в DLL Отлично
Записан

dimedrol
Помогающий

ru
Offline Offline

« Ответ #4 : 17-12-2015 08:36 » 

Не вижу ничего такого забавного, ясно дело что, ошибку в системной длл искать нечего, но место падения может вполне прояснить ситуацию.
Записан

Как говориться, cемь бед - один Reset Улыбаюсь
zubr
Гость
« Ответ #5 : 17-12-2015 10:21 » new

dimedrol, скорее всего где то у тебя указатель левый, вот и выкидывает в какую то область памяти, пытаясь там выполнить код. Попробуй, к примеру, в WinDbg запустить свою прогу, а после падения в отладке крутить краш-дамп. Да и в самом краш-дампе от WinDbg может быть более информативная информация по поводу падения.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines