Решено: APPCRASH как искать или как исправить?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Решено: APPCRASH как искать или как исправить?

Сообщение azsx » 18.06.2016 04:18:38

У меня 15 виртуальных машин вин 7, 32 бита в квм, чистая установка. На них запущена одна программа на лазарус, которая запускает файл cmd (запуск видно на экране), затем обрабатывает текстовые файлы и пишет в бд постгрес. Где то за неделю запуска на 4 машинах вышла абсолютно одинаковая проблема:
Код: Выделить всё
Сигнатура проблемы:
  Имя события проблемы:   APPCRASH
  Имя приложения:   my.exe
  Версия приложения:   0.0.0.0
  Отметка времени приложения:   00000000
  Имя модуля с ошибкой:   KERNELBASE.dll
  Версия модуля с ошибкой:   6.1.7601.17514
  Отметка времени модуля с ошибкой:   4ce7b8f0
  Код исключения:   c00000fd
  Смещение исключения:   00008eb5
  Версия ОС:   6.1.7601.2.1.0.256.1
  Код языка:   1049
  Дополнительные сведения 1:   ebfd
  Дополнительные сведения 2:   ebfd5bd2b3c4cc86144ebbb6b30defe5
  Дополнительные сведения 3:   3823
  Дополнительные сведения 4:   3823584df2305eb591b9ad39486d7d62

В сети очень много написно по этой ошибке, чаще не решают ее никак. Советы, например: 1. очистить темп; 2. запустить от админа; 3. переставить винду; 4. - sfc /scannow в кмд; 5. переустановить директ х (которого у меня нет) и так далее. Короче, перебирают разные варианты.
Вопросы:
1. Сталкивался ли кто то с такой проблемой?
2. Есть ли какой то официальный ресурс, где по кодам ошибки можно искать официальные ответы?
Заранее спасибо за ответы.
-------------------
Решено наполовину. Я нашел проблему, она в файле нулевой длины. Дальше где то по коду программа зависала. Я не нашел из-за чего именно происходило зависание, а также не разобрался как по ошибке искать проблему. Просто обработал ошибку.
Последний раз редактировалось azsx 02.07.2016 12:01:32, всего редактировалось 1 раз.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: APPCRASH как искать или как исправить?

Сообщение SSerge » 18.06.2016 10:07:03

azsx писал(а):Где то за неделю запуска на 4 машинах вышла абсолютно одинаковая проблема


То есть, программа, один раз запущенная, неделю обрабатывала текстовые файлы и свалилась с этой ошибкой?
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: APPCRASH как искать или как исправить?

Сообщение pupsik » 18.06.2016 10:39:04

а "подсунуть" длл пробовали? : https://social.msdn.microsoft.com/Forums/vstudio/en-US/d9aaa309-7799-43c8-8b57-fce278a5be0e/kernelbasedll-error?forum=vcgeneral
Есть ли какой то официальный ресурс, где по кодам ошибки можно искать официальные ответы?
сдк мелких?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: APPCRASH как искать или как исправить?

Сообщение Лекс Айрин » 18.06.2016 11:01:57

Код: Выделить всё
You can look up exception code 0xC00000FD in ntstatus.h, which can be found in the Microsoft Windows SDK and the Windows Driver Kit (WDK). This exception code is STATUS_STACK_OVERFLOW.
Т. е. это переполнение стека. Судя по всему,библиотека "течет".
azsx писал(а):Есть ли какой то официальный ресурс, где по кодам ошибки можно искать официальные ответы?


Вроде как кошерный ресурс https://msdn.microsoft.com
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: APPCRASH как искать или как исправить?

Сообщение azsx » 18.06.2016 12:48:35

То есть, программа, один раз запущенная, неделю обрабатывала текстовые файлы и свалилась с этой ошибкой?

да. 4 программы из 15 программ в разных гостях упали.
а "подсунуть" длл пробовали?

Судя по всему в этой теме предлагают файлы MSVCR120.DLL and MSVCP120.DLL разместить в той же папке, что и программа? Боюсь это такое же гадание, как найденные мной в сети способы, но если чо - попробую.
Thanks for e-mailing the files. I reproduced the error. You need to redistribute the VC++ Runtime, specifically MSVCR120.DLL and MSVCP120.DLL, which are located in e.g. C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT. Put these files in the same folder as ConnectFour.exe. (You could also tell your users to run the redistributable installer that you can search for and download from Microsoft, but just copying these files is easier.)
These are the Release (not Debug) DLL’s. For these to work, you need to build the Release version of your program (not the Debug). This is a combobox in the VC++ toolbar.

сдк мелких?

тут беда, что я не понимаю. Вот установлю я microsoft windows sdk (не ставлю, так как там фреймворк 4 надо) и? Там можно по ошибке найти описание? У вас есть, вы не можете посмотреть, можно найти по коду ошибки описание чего случилось или нет?
Вроде как кошерный ресурс https://msdn.microsoft.com

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

течет библиотека kernelbase.dll? Что-то можно предпринять по этому поводу?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: APPCRASH как искать или как исправить?

Сообщение Снег Север » 18.06.2016 13:08:39

Если проблема с утечками, то может помочь автоматический перезапуск программы, например, раз в сутки. Мне на некоторых дельфийских "долгоиграющих" программах помогало.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: APPCRASH как искать или как исправить?

Сообщение pupsik » 18.06.2016 13:17:43

течет библиотека kernelbase.dll? Что-то можно предпринять по этому поводу?
пожаловаться мелким. И указать на их ошибку :mrgreen:
А в реальности - проверить свой код.
п.с.
Лекс Айрин отсюда стащили: https://msdn.microsoft.com/en-us/library/windows/hardware/ff540620(v=vs.85).aspx?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: APPCRASH как искать или как исправить?

Сообщение Лекс Айрин » 18.06.2016 13:31:15

azsx писал(а): Гадают что хотят.


Ну если сама майкросоофт не устраивает, то больше ресурсов нет.

pupsik писал(а):п.с.
Лекс Айрин отсюда стащили: https://msdn.microsoft.com/en-us/librar ... 20(v=vs.85).aspx?


ну да... посмотрел историю, именно отсюда


pupsik писал(а):пожаловаться мелким. И указать на их ошибку :mrgreen:


Скажут, ставьте новую версию WDK... и что там все исправлено... а то и вовсе скажут, что надо переходить на C# и вин10...

azsx писал(а):Нет, я хочу сайт (программу) в которую вводишь код ошибки, а она в ответ выплевывает из-за чего такое бывает и как решать.


на выбор : Гугл, Яндех, Бинг, Нигма... но если ошибка в чужой библиотеке, то здесь мало что можно сделать.
Последний раз редактировалось Лекс Айрин 18.06.2016 13:43:49, всего редактировалось 1 раз.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: APPCRASH как искать или как исправить?

Сообщение pupsik » 18.06.2016 13:41:27

Скажут, ставьте новую версию WDK...
дык оно и на сях ругается, как я понимаю. А вот насчёт пошлют- это да..а.
но если ошибка в чужой библиотеке
нет гарантии что ошибка в ней... Т.е. код программы не известен, что она делает - только поверхностно. Вывод ошибки... Да..а мелкие их штампуют, а ошибка может быть иная. Можно попытаться просмотреть журналы. Может там полезное найдётся.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: APPCRASH как искать или как исправить?

Сообщение Лекс Айрин » 18.06.2016 13:51:53

pupsik писал(а):дык оно и на сях ругается, как я понимаю.


Ну так, библиотека на сях и написана...

pupsik писал(а): а ошибка может быть иная.


В ином месте, но ошибка именно та. Не стоит забывать, что ругнулась не программа, а библиотека... Это видно по выхлопу. Случай, когда библиотеке дали неверные данные это тоже ошибка библиотеки (нет проверки корректности данных). Конечно, может быть и ошибка в программе или можно будет исправить в программе... но сильно не похоже.

azsx, попробуйте в настройках проекта программы увеличить размер стека. Решение, в силу вполне понятных причин, не совсем корректное, но должно (по крайней мере) отодвинуть момент краха.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: APPCRASH как искать или как исправить?

Сообщение pupsik » 18.06.2016 14:17:39

Случай, когда библиотеке дали неверные данные это тоже ошибка библиотеки..
офигительно. Т.е. в магазине вы заплатили фальшивками, а виноват торговец... Он заметил подвох.

Из того что известно:
1. "которая запускает файл cmd"
2. "(запуск видно на экране)"
3. " затем обрабатывает текстовые файлы"
4. " и пишет в бд постгрес"
5. "Где то за неделю запуска..."

И всё. ..
Вы советуете:
в настройках проекта программы увеличить размер стека
. Может нет такого в программе. Может это простая обработка файла через stringlist. И там все решено десятком строк. А может и куда сложнее.
Это всё гадания. Тем более, как я понимаю, вопрошающему необходим "мёд с ложкой"...
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: APPCRASH как искать или как исправить?

Сообщение Лекс Айрин » 18.06.2016 14:49:02

pupsik писал(а):Т.е. в магазине вы заплатили фальшивками, а виноват торговец... Он заметил подвох.


В этом случае, речь идет скорее об обсчете.

pupsik писал(а): Может нет такого в программе.

Получше курите маны. Библиотека выполняется, в контексте вызывающей программы (и использует ее стек).

pupsik писал(а):Может это простая обработка файла через stringlist. И там все решено десятком строк. А может и куда сложнее.


Текстовое представление ошибки говорит о переполнении стека, соответственно надо либо его увеличивать, либо перестроить размер так чтобы он расходовался менее интенсивно. И уже не так важно какая работа выполняется. Второй путь нам недоступен, так как библиотека скомпонована.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: APPCRASH как искать или как исправить?

Сообщение azsx » 18.06.2016 14:59:37

на самом деле у меня есть флаг с логированием по тексту программы (где приблизительно находится). Я логи включил на всех 15 программах, уже сутки прошли - сбоев нет. Поджидаю. Спасибо всем за советы, жаль что нет поиска по ошибкам. Стек пока я увеличивать не буду, так как не смог понять что это и почему мне не хватает стандартного (у меня рекурсий нет). На сколько поставить стек и какой из двух - соответственно также не понимаю. Перезапуск программы, возможно, если совсем не победю. Спасибо большое за ответы, я читаю всё.
Я реально использую stringlist. Типа сперва я определяю размер файла (я не обрабатываю файлы больше 100 мб), а затем читаю файл целиком в строку с помощью TStringList. Тут может быть утечка?
В день каждая программа обрабатывает не более 30 000 (может 50 тысяч) файлов разного размера.
Код: Выделить всё
function GetFileSize(FileName: String): Int64;
var
  FS: TFileStream;
begin
  try
    FS := TFileStream.Create(Filename, fmOpenRead);
  except
    Result := -1;
  end;
  if Result <> -1 then Result := FS.Size;
  FS.Free;
end;

function TextFileToString(const FName: TFileName): string;
var
  St: TStringList;
begin
  St:= TStringList.Create;
  try
    St.LoadFromFile(FName);
    Result:= St.Text
  finally
    St.Free
    end
end;   
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: APPCRASH как искать или как исправить?

Сообщение pupsik » 18.06.2016 15:15:37

Типа сперва я определяю размер файла (я не обрабатываю файлы больше 100 мб), а затем читаю файл целиком в строку с помощью TStringList. Тут может быть утечка?
угу. Если быть точнее: это может стать поводом...
Построчное чтение из файла, или "кусками" не подойдут варианты?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: APPCRASH как искать или как исправить?

Сообщение zub » 18.06.2016 15:16:14

>>1. Сталкивался ли кто то с такой проблемой?
С багами в своих программах сталкиваются все регулярно))

>>2. Есть ли какой то официальный ресурс, где по кодам ошибки можно искать официальные ответы?
Сомневаюсь что там содержится чтото информативное. Копать надо в своем огороде.
Получить стек - отладить программу. Если стек не поможет - сделать подробный лог и ловить момент когда программа начинает вести себя нештатно

Добавлено спустя 1 минуту 6 секунд:
>>Тут может быть утечка?
Есть соответствующие инструменты для ловли утечек - ключик -gh
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru