Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1404566995
Sakipiel
2014-07-05 17:29
2016.01.17
Caption и отображение в панели задач в Windows


15-1431844499
Pavelnk
2015-05-17 09:34
2016.01.17
Моя поделка)


4-1275072763
Циркуль
2010-05-28 22:52
2016.01.17
Как узнат содержит ли шрифт символы определенной кодовой страницы


15-1431344437
Кто б сомневался
2015-05-11 14:40
2016.01.17
Когда программа бесплатная, но с ограниченным функционалом


15-1431933898
Pavia
2015-05-18 10:24
2016.01.17
Зловред в овечей шкере





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский