Форум: "Прочее";
Текущий архив: 2016.01.17;
Скачать: [xml.tar.bz2];
ВнизExitCode Найти похожие ветки
← →
Kerk © (2015-04-04 22:09) [0]Есть такая глобальная переменная - ExitCode. Я присваиваю ей значение в консольном приложении, чтобы вернуть статус выполнения. И вот один из пользователей жалуется, что в ExitCode всегда возвращается ноль. Пользователь не дурак, я убедился, что он говорит правду. С другой стороны я уже залоггировал все что можно и уверен, что значение присваивается правильное. Но на выходе все равно ноль.
Подкиньте мне, господа, идей.
Что такое может произойти в момент завершения работы приложения, что ExitCode обнуляется? Чего бы мне еще залоггировать?
← →
Rouse_ © (2015-04-04 23:12) [1]Это просто переменная, а код завершения присваивается при завершении процесса, там и смотреть нужно
← →
Kerk © (2015-04-04 23:18) [2]Я не могу к пользователю на машину запихнуть отладчик. То, что я знаю на данный момент - перед последним end. значение ExitCode верное. Потом оно где-то портится. Нужно с помощью телепатии, телекинеза и логгирования найти проблему :(
← →
Rouse_ © (2015-04-04 23:38) [3]Ну так ручками вызови ExitProcess, а не жди последнего енда
← →
Дмитрий С © (2015-04-05 00:27) [4]Недавно кажется с похожей проблемой сталкивался. Добавил ExitProcess
← →
кгшзх © (2015-04-05 10:16) [5]все запсукают консольку с ярлыка и получают экзиткод консольки.
умный юзер запускает консольку из батника, который тоже получает экзиткод консольки, а уный юзер получает нулевой экзиткод самого батника
← →
L_G © (2015-04-05 12:35) [6]
> Нужно с помощью телепатии, телекинеза и логгирования найти проблему :(
сейчас "телепатия" и "телекинез" называются "TeamViewer" и "AmmyyAdmin"
← →
Kerk © (2015-04-05 12:43) [7]
> Rouse_ © (04.04.15 23:38) [3]
>
> Ну так ручками вызови ExitProcess, а не жди последнего енда
>
> Дмитрий С © (05.04.15 00:27) [4]
>
> Недавно кажется с похожей проблемой сталкивался. Добавил
> ExitProcess
Попробую. Будет забавно, если поможет. Но это будет выглядеть как заплатка, а не реальный фикс, решающий проблему.
> кгшзх © (05.04.15 10:16) [5]
Нет, он все делает правильно. У него батник вродеprogram.exe
echo %errorlevel%
pause
выводит ноль, хотя в лог одновременно с этим попадает двойка
> L_G © (05.04.15 12:35) [6]
>
> > Нужно с помощью телепатии, телекинеза и логгирования найти
> проблему :(
>
> сейчас "телепатия" и "телекинез" называются "TeamViewer"
> и "AmmyyAdmin"
И что я с ними буду делать? Смотреть на ноль? Круто!
← →
junglecat © (2015-04-05 12:58) [8]> [7] Kerk © (05.04.15 12:43)
ExitCode реально используется при вызове Halt.
Для остальных случаев, видимо, правильно советуют ExitProcess
← →
L_G © (2015-04-05 15:13) [9]
> Я не могу к пользователю на машину запихнуть отладчик.
с телепатией и телекинезом - сможешь
← →
Игорь Шевченко © (2015-04-06 10:27) [10]junglecat © (05.04.15 12:58) [8]
procedure _Halt0;
var
P: procedure;
begin
...
if InitContext.OuterContext = nil then
begin
{
If an ExitProcessProc is set, we call it. Note that at this
point the RTL is completely shutdown. The only thing this is used
for right now is the proper semantic handling of signals under Linux.
}
if Assigned(ExitProcessProc) then
ExitProcessProc;
ExitProcess(ExitCode);
end;
InitContext := InitContext.OuterContext^
end;
end;
← →
Дмитрий Белькевич © (2015-04-06 16:08) [11]Вангую. Так как один из пользователей, то возможно у него с самой машиной что-то не так - вирусы, трояны, антивирусы или просто винда кривая.
Так же рекомендую посмотреть в сторону удаленной отладки. Мы в одном, особенно сложном, случае отлаживали из Беларуси в Канаде. Успешно.
← →
Rouse_ © (2015-04-06 18:25) [12]
> Дмитрий Белькевич © (06.04.15 16:08) [11]
> Вангую. Так как один из пользователей, то возможно у него
> с самой машиной что-то не так - вирусы, трояны, антивирусы
> или просто винда кривая.
Не вангую, но утверждаю.
Код завершения процесса выставляется в двух случаях: терминируем - завершаем (такая вот шамбала).
Раз значение ExitCode было подменено - должен быть источник данного изменения.
Но, как мне кажется, налицо банальный незавершенный свинг - а именно отсутствие передачи результата в контролируемое приложение (некий аналог MITM).
← →
Дмитрий С © (2015-05-13 19:00) [13]Чем закончилась эпопея с ExitCode ?
← →
Kerk © (2015-05-15 23:36) [14]Ничем. ExitProcess помог, но это криво.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2016.01.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c