Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Падает система. Файл с дампом и расшифровка есть


Автор: kalexi 10.6.2010, 14:37
В первый раз приходится работать с дампом памяти. Помогите.
Мною написана программа, из-за нее через несколько часов работы падает система, хочу узнать что вызывает такой отказ системы.

ОС: Win7 32bit

Предположительные причины:
1) В программе используется функция убивающая процесс (не системный) - TerminateProcess, не знаю, может системе не нравится такой способ. Еще возможно переодически она може убивать не тот процесс (маловероятно, но возможно)
Листинг:
Код
procedure CloseWin(h:HWND);
var
  PID:Cardinal;
  hProc:Cardinal;
begin
  GetWindowThreadProcessId(h,PID);
  hProc:=OpenProcess(PROCESS_TERMINATE,true,PID);
  TerminateProcess(hProc,0);
end;


2) В программе мог возникнуть бесконечный цикл добавляющий элементы в массив. От этого может упасть система?


Данные расшифровал с помощью Debugging Tools for Windows и командного файла kdfe.cmd запущенного с параметром -v. Cам файл дампа прилагается :

Код
Windows 7 Kernel Version 7600 (Service Pack 3) MP (4 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7600.16539.x86fre.win7_gdr.100226-1909
Machine Name:
Kernel base = 0x82850000 PsLoadedModuleList = 0x82998810
Debug session time: Thu Jun 10 09:04:40.787 2010 (UTC + 4:00)
System Uptime: 2 days 7:13:48.503
Loading Kernel Symbols

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 00000003, Process
Arg2: 861be630, Terminating object
Arg3: 861be79c, Process image file name
Arg4: 82a78d90, Explanatory message (ascii)

Debugging Details:
------------------


PROCESS_OBJECT: 861be630

DEBUG_FLR_IMAGE_TIMESTAMP:  0

MODULE_NAME: smss

FAULTING_MODULE: 00000000

PROCESS_NAME:  Clicker.exe

BUGCHECK_STR:  0xF4_Clicker.exe

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

CURRENT_IRQL:  0

LAST_CONTROL_TRANSFER:  from 82b2c0d3 to 8292cd10

STACK_TEXT:
9d938c9c 82b2c0d3 000000f4 00000003 861be630 nt!KeBugCheckEx+0x1e
9d938cc0 82aafe84 82a78d90 861be79c 861be8a0 nt!PspCatchCriticalBreak+0x71
9d938cf0 82ab1d1f 861be630 85892458 00000000 nt!PspTerminateAllThreads+0x2d
9d938d24 8289344a 00000154 00000000 01a0fe54 nt!NtTerminateProcess+0x1a2
9d938d24 770d64f4 00000154 00000000 01a0fe54 nt!KiFastCallEntry+0x12a
WARNING: Frame IP not in any known module. Following frames may be wrong.
01a0fe54 00000000 00000000 00000000 00000000 0x770d64f4

STACK_COMMAND:  kb

FOLLOWUP_NAME:  MachineOwner

IMAGE_NAME:  smss.exe

FAILURE_BUCKET_ID:  0xF4_Clicker.exe_IMAGE_smss.exe

BUCKET_ID:  0xF4_Clicker.exe_IMAGE_smss.exe

Followup: MachineOwner
---------

Автор: Akella 10.6.2010, 15:41
Windows тут при чём. Разбирайся в исходниках. Пусть программа логирует все действия, потом лог ковыряй.
Ну а дамп памяти, думаю, что за тебя никто ковырять не захочет. Бесплатно, конечно.

Вот ссылка, сам разбирай
http://forum.vingrad.ru/index.php?showtopic=41496&view=findpost&p=1874469

Добавлено через 1 минуту и 53 секунды
И ещё...
Цитата
Падает система 


т.е. ты хочешь, чтобы местные телепаты отгадали глубокий смыл слова "падает"??

Добавлено через 6 минут и 7 секунд
Цитата(kalexi @  10.6.2010,  14:37 Найти цитируемый пост)
В первый раз приходится работать с дампом памяти. Помогите.

В первый раз приходится спать с девушкой, помогите. Девушка и кровать прилагается.  smile  smile  smile 

Автор: DarkProg 11.6.2010, 17:47
Цитата(kalexi @  10.6.2010,  14:37 Найти цитируемый пост)
Еще возможно переодически она може убивать не тот процесс (маловероятно, но возможно)

Не опнял а в чём поблема чтобы просто запустить достаточно большой цикл и посмотреть что у вас вообще за идентификаторы процесса снимаются


Цитата(kalexi @  10.6.2010,  14:37 Найти цитируемый пост)
 В программе мог возникнуть бесконечный цикл добавляющий элементы в массив. От этого может упасть система?

ТОлько очень сильно тупить начнёт из-за того что прога сожрёт всё ОЗУ, и ситема нчнёт кидать всё это дело в файл подкачки, а чтобы упасть... нет(ну разве что у вас ОЗУ битые и тогда при попадении на неверный адрес возникает "падение", хотя я уже почти полгода с битыми ОЗУ на ноуте и поверьте ни разу система "не упала" хотя иногда в ходе экспериментных проектов ОЗУ нагружается так что ало не покажется)


Я не уверен, но кажись у вас проблемы с убиванием процесса, что-то из ситемного завалили по ошибке.

Автор: CodeMonkey 11.6.2010, 17:54
Судя по CloseWin, http://www.gunsmoker.ru/2010/05/90.html (нет обработки ошибок).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)