Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1080742977
ПрогерШ
2004-03-31 18:22
2004.04.18
символ при вводе пароля


1-1080682818
uncoder
2004-03-31 01:40
2004.04.18
Delphi + Winamp skin


14-1079762597
Alex Konshin
2004-03-20 09:03
2004.04.18
Купил новую машину


1-1080768475
LORDMAXX
2004-04-01 01:27
2004.04.18
Кол-во строк и столбцов и цвет ячеек EXCEL


8-1072436328
AlexeyITN
2003-12-26 13:58
2004.04.18
Голоса




   Наверх