Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 104 105 106 107 108 [109] 110 111 112 113 .. 163   вперед  Ctrl
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9704
Вот думаю, а что я буду делать с пойманным AV ?
9 авг 18, 15:49    [21636366]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 3442
Dmitry Arefiev
Вот думаю, а что я буду делать с пойманным AV ?

Как минимум, освободишь ресурсы в finally-блоках.
9 авг 18, 16:06    [21636396]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rashid.abzalov
Member

Откуда:
Сообщений: 105
Dmitry Arefiev,

А как максимум, запротоколируешь ошибку и продолжишь работу дальше (в сервисах это не лишнее), вместо падения процесса и без информации в чем было дело.
9 авг 18, 16:11    [21636402]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rgreat
Member

Откуда:
Сообщений: 4902
Dmitry Arefiev
Вот думаю, а что я буду делать с пойманным AV ?

Обрабатывать его. Ваш кэп.
9 авг 18, 16:21    [21636418]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rashid.abzalov
Member

Откуда:
Сообщений: 105
Dmitry Arefiev
Вот думаю, а что я буду делать с пойманным AV ?


И hardware exceptions не заканчиваются AV.
Надеюсь, не будете говорить, что получив Incorrect paremeter при вызове win32 API было бы логичнее падать?
А тут при неверном syscall именно это и предлагается. Выносить все вызова syscall в подпрограммы? ну-ну...
9 авг 18, 16:26    [21636423]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
schi
Member

Откуда: Москва
Сообщений: 2601
Мне очень любопытно, почему такими советами не воспользовались авторы ядра Windows NT - получили AV, запротоколировали и вперед, дальше крутиться. А они зачем-то в синий экран уходят..
9 авг 18, 16:41    [21636450]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rashid.abzalov
Member

Откуда:
Сообщений: 105
Arioch
rashid.abzalov,

самое смешное, что фикс то - при встрече try-блока без функций компилятору автоматически вставлят ьвызов пустой dummy-функции

но - "это не бага, это фича такая"


Имелось ввиду оборачивать тело try блока в генерируемую dummy функцию?
Или есть информация, что достаточно сделать вызов левой функции?
9 авг 18, 16:41    [21636452]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rashid.abzalov
Member

Откуда:
Сообщений: 105
schi
Мне очень любопытно, почему такими советами не воспользовались авторы ядра Windows NT - получили AV, запротоколировали и вперед, дальше крутиться. А они зачем-то в синий экран уходят..


1) Ситуация не поменялась со времени Windows 98? Или таки они начинают понимать, что это проблема?
2) У них несколько иная ситуация - весь их код подконтролен им, за исключением драйверов (кстати, кривые драйвера и были основной причиной синих экранов). А мы имеем дело со сторонним, не подконтрольным кодом, и в случае проблем (список их заранее не известен) оперативно исправить их не получится, остается только обходить или обрабатывать.
9 авг 18, 17:08    [21636496]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 438
schi
Мне очень любопытно, почему такими советами не воспользовались авторы ядра Windows NT - получили AV, запротоколировали и вперед, дальше крутиться. А они зачем-то в синий экран уходят..

В Win95 так и было. А потом с каждой новой версией Windows количество уходов в синий экран все меньше. В Win10 экран смерти увидеть практически нереально, то бишь получают AV, протоколируют и дальше крутятся))
9 авг 18, 17:10    [21636498]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rgreat
Member

Откуда:
Сообщений: 4902
asutp2
В Win95 так и было. А потом с каждой новой версией Windows количество уходов в синий экран все меньше. В Win10 экран смерти увидеть практически нереально, то бишь получают AV, протоколируют и дальше крутятся))
Ай-яй-яй! Ккакие нехорошие люди!

Нет чтобы все было четко. Ошибка случилась - переустанавиливай винду. ;)
9 авг 18, 18:02    [21636548]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10780
rashid.abzalov
Arioch
rashid.abzalov,

самое смешное, что фикс то - при встрече try-блока без функций компилятору автоматически вставлят ьвызов пустой dummy-функции

но - "это не бага, это фича такая"


Имелось ввиду оборачивать тело try блока в генерируемую dummy функцию?
Или есть информация, что достаточно сделать вызов левой функции?


на прошлой страница была ссылка на документацию
вот что говорит документация про билдер:

DocWiki EMBT
However, Clang is designed for synchronous exceptions only, and it does not support non-call exception handling. If a try block contains no throw statements and no calls to functions that may contain throw statements, Clang ignores any catch and finally blocks associated with that try block. That is, if a try block cannot throw any synchronous exception, you cannot catch any asynchronous exception in that try block either.


Т.е. да, dummy не поможет, надо там вставлять без оптимизации что-то типа
if (a+1 == a-1) then throw .....


Хорошая новость: это сказано конкретно про CLang, т.е. возможно прямой LLVM этому не подвержен.
Хотя мне помнится пару лет назад я именно про LLVM читал....

-------------------

ага, вот, нашёл!!! ну... насколько можно той документации после Delphi 7 верить, конечно....

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop#Use_a_Function_Call_in_a_try-except_Block_to_Prevent_Uncaught_Hardware_Exceptions
Use a Function Call in a try-except Block to Prevent Uncaught Hardware Exceptions

With compilers for iOS devices, except blocks can catch a hardware exception only if the try block contains a method or function call. This is a difference related to the LLVM backend of the compiler, which cannot return if no method/function is called in the try block.

For example, this is how to structure a try-except block that can catch a hardware exception:
var
  P: ^Integer = nil;

procedure G1;
begin
  P^ := 42;
end;

begin
  try
    G1;
  except
    writeln('Catch:G1 - pass');
  end;
end.

Even if a block of source code looks like it contains a function call, that may not be the case if the function is inlined. By the time LLVM is generating machine instructions, the inlining process has already occurred and there is no longer a function call within the try block.
9 авг 18, 18:23    [21636566]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10780
ключевые фразы

....difference related to the LLVM backend of the compiler
....if the try block contains a method or function call
....Even if a block of source code looks like it contains a function call.....
....there is no longer a function call within the try block.
9 авг 18, 18:27    [21636568]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rgreat
Member

Откуда:
Сообщений: 4902
Да уж. Догадаться в случе try делать скрытый Call - это не для высоких умов в эмбаркадере.
9 авг 18, 18:27    [21636569]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9704
По моему опыту если AV, то в 86.3% случаев продолжать работу бесполезно (да, очень плохой опыт) ... И вообще, зачем инвалида насиловать - его в госпиталь надо ...
9 авг 18, 19:22    [21636636]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 56203
Блог
Dmitry Arefiev
По моему опыту если AV, то в 86.3% случаев продолжать работу бесполезно (да, очень плохой опыт)

Смотря какую работу. У меня в репликаторе, например, в случае неожиданной ошибки (в том числе и AV) задание тормозилось, поток убивался, ресурсы старательно терялись, задача получала статус "ошибка - повторить через пять минут". И таким образом достигались аптаймы "пока не потребуется поменять железо".

Dmitry Arefiev
... И вообще, зачем инвалида насиловать - его в госпиталь надо ...

Надо, конечно. Только бывает так, что AV внутри DAC, воспроизвести условия, мягко говоря, непросто, а работать надо...
9 авг 18, 20:07    [21636721]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3154
Dmitry Arefiev,

Всяко бывает. Но доп. потоки, как правило, такое переживают. В том смысле - что можно его аккуратно убить и запустить новый.
9 авг 18, 20:10    [21636726]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Гирлионайльдо
Member

Откуда:
Сообщений: 427
Ну про высокую скорость выполнения java кода это уже слишком,закинули петельку в небо. Это как бы по мягче сказать,из мифов. Особенно на фоне, реальных программ типа Зона и других, которые сжирают 60 % процессорного времени, и ОЗУ чуть ли не в 3 гб сжирают. Ну это, мелочи. Просто - язык быстрый, модно - молодёжно. А дальше люди поведутся xD
9 авг 18, 20:13    [21636730]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10780
rgreat
Да уж. Догадаться в случе try делать скрытый Call - это не для высоких умов в эмбаркадере.


Возможно ниасилили.

Комментарий про внезапный инлайнинг в LLVM не на пустом месте, подозреваю, взялся
9 авг 18, 20:13    [21636732]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rgreat
Member

Откуда:
Сообщений: 4902
Гирлионайльдо,

3 гб - для жабы это весьма кромно еще. На реальных задачах.
9 авг 18, 20:14    [21636735]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Barlone
Member

Откуда:
Сообщений: 1182
softwarer
Надо, конечно. Только бывает так, что AV внутри DAC, воспроизвести условия, мягко говоря, непросто, а работать надо...
Ага, и что оно там будет после этого делать, неизвестно. Возможно, вместо записи новых данных начнет писать мусор поверх старых.
9 авг 18, 20:16    [21636739]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Barlone
Member

Откуда:
Сообщений: 1182
softwarer
Надо, конечно. Только бывает так, что AV внутри DAC, воспроизвести условия, мягко говоря, непросто, а работать надо...
Ага, и что оно там будет после этого делать, неизвестно. Возможно, вместо записи новых данных начнет писать мусор поверх старых.
9 авг 18, 20:18    [21636740]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Гирлионайльдо
Member

Откуда:
Сообщений: 427
rgreat
3 гб - для жабы это весьма кромно еще. На реальных задачах.


А самое интересное, куда же они за пазуху столько прячут. Нормальных программам - на других языках, столько надо для косметических задач. Это же 3e+9 байт!. В уме даже не посчитать.
9 авг 18, 20:19    [21636743]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9704
Barlone
Ага, и что оно там будет после этого делать, неизвестно. Возможно, вместо записи новых данных начнет писать мусор поверх старых.

Непомирающая девушка Надежда ...
9 авг 18, 20:21    [21636746]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 56203
Блог
Barlone
Ага, и что оно там будет после этого делать, неизвестно. Возможно, вместо записи новых данных начнет писать мусор поверх старых.

Это можно проконтролировать и прореагировать. Зато точно известно, что оно НЕ будет делать, если позволить программе упасть. Оно не будет писать вообще никаких данных.
9 авг 18, 20:28    [21636759]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9704
softwarer
Оно не будет писать вообще никаких данных.

И слава Богу ! Нежели потом пытаться отличить мусор от правды ...
9 авг 18, 20:30    [21636760]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 104 105 106 107 108 [109] 110 111 112 113 .. 163   вперед  Ctrl
Все форумы / Delphi Ответить