Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Подскажите, если кто может, направление поиска!   Найти похожие ветки 

 
Германн ©   (2004-02-13 02:40) [0]

Каким образом приложение может быть снято/удалено/прекращено "молча", т.е. без всяких сообщений об какой-либо ошибке и без следов в логе WinXP?
Меня, лично, интересует именно концептуальный ответ.

Гарантирую, что на сем компьютере нет приложений, которые могут вызвать TerminateProcess.

Однако, сам лично видел, как моя программа "Сгинула без следа".


 
Defunct   (2004-02-13 03:24) [1]

это есть Halt(0)

может вызваться случайно, врезультате какого-то сбоя в работе со стеком.


 
Германн ©   (2004-02-13 19:55) [2]

Других вариантов никто не знает?


 
DDA ©   (2004-02-13 20:41) [3]

Ну можно просто завершить вот так по ехе-нику
Закроет приложение без всяких там вопросов:
function KillTask(ExeFileName: string): integer;
const
 PROCESS_TERMINATE=$0001;
var
 ContinueLoop: BOOL;
 FSnapshotHandle: THandle;
 FProcessEntry32: TProcessEntry32;
begin
 result := 0;

 FSnapshotHandle := CreateToolhelp32Snapshot
                    (TH32CS_SNAPPROCESS, 0);
 FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
 ContinueLoop := Process32First(FSnapshotHandle,
                                FProcessEntry32);

 while integer(ContinueLoop) <> 0 do
 begin
   if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
        UpperCase(ExeFileName))
    or (UpperCase(FProcessEntry32.szExeFile) =
        UpperCase(ExeFileName))) then
     Result := Integer(TerminateProcess(OpenProcess(
                       PROCESS_TERMINATE, BOOL(0),
                       FProcessEntry32.th32ProcessID), 0));
   ContinueLoop := Process32Next(FSnapshotHandle,
                                 FProcessEntry32);
 end;

 CloseHandle(FSnapshotHandle);
end;


 
Германн ©   (2004-02-13 22:17) [4]

Увы, меня то интересует возможные пути безмолвного самопроизвольного вылета программы, а не способы ее убиения извне.


 
Soft ©   (2004-02-13 22:48) [5]

Halt(Код завершения);
дохнет сразу.


 
Defunct   (2004-02-14 04:30) [6]

Каким-то макаром где-то подменяется адрес возврата в стеке, так что программа попадает на код процедуры Halt().

Можно пощупать в направлении передаваемых параметров процедур/функций, особенно если есть экспортируемые/импортируемые функции. Может глюк с процедурами "Overload".


 
Германн ©   (2004-02-15 01:06) [7]

Да, увы направлений поиска немного, утешает пока что то, что вот уже почти две недели не было вылетов у данной версии. А ведь она уже почти год работает на одном объекте и почти 2 месяца на другом. Единственное отличие этого объекта в том, что с программой постоянно общается по сети некое "удаленное рабочее место". Оно перерабатывалось за это время и может "исправилось", но я по-прежнему не понимаю как и что могло так "грохнуть" мою программу?
Прям "изображаю" В.Соломина в роли др.Ватсона срашивающего "Холмс, но как?"



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
14-1080424671
kdd
2004-03-28 00:57
2004.04.18
Delphi 8


1-1080412954
begemot
2004-03-27 21:42
2004.04.18
RichEdit


4-1076024774
Rauf
2004-02-06 02:46
2004.04.18
Мастера помогите разобраться с конфертом битмапа!!!


3-1079811622
Алексей31
2004-03-20 22:40
2004.04.18
Как просмотреть структуру БД на уровне таблиц?


4-1075370514
DVM
2004-01-29 13:01
2004.04.18
Прозрачный фон дочернего окна