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

Вниз

Безопасный код :)   Найти похожие ветки 

 
TTCustomDelphiMaster ©   (2002-11-01 18:10) [0]

Какой код нужно написать чтобы программа вызывала системную ошибку с сообщением "Программа выполила недопустимую операцию и будет закрыта" или что нибудь подобное.


 
Николай Быков ©   (2002-11-01 18:13) [1]

Любой. Главное, чтобы IDE выдавало косяк, который приводит к закрытию приложения с таким матом.
ЗЫ
сказал криво, но понять можно, если догадаться


 
TTCustomDelphiMaster ©   (2002-11-01 18:16) [2]

Николай Быков

Есть 100% работающий пример?


 
Николай Быков ©   (2002-11-01 18:16) [3]

Щас напишу...:-)


 
Дремучий ©   (2002-11-01 18:17) [4]

была такая ветка, копайся в архивах
там сначала(и я тоже) советовали как выдать акцесс виолейшен, но в конце концов кто-то таки ответил правильно на этот вопрос

ответа не помню, не очень интересовал
когда было? наверное где-то в начале года - не помню, но давненько...
:))



 
TTCustomDelphiMaster ©   (2002-11-01 18:18) [5]


> копайся в архивах


Проще самому придумать чем в архивах найти с таким поиском :)


 
Юрий Зотов ©   (2002-11-01 18:25) [6]

>> Какой код нужно написать чтобы программа вызывала системную
>> ошибку с сообщением "Программа выполила недопустимую операцию
>> и будет закрыта" или что нибудь подобное.

====================

> Николай Быков © (01.11.02 18:13)
> Любой.

=====================

Делаем вывод - любой код DiamondSoft вызывает эту ошибку.


 
Андрей Прокофьев ©   (2002-11-01 18:25) [7]


MessageDlg("Программа выполила недопустимую операцию и будет закрыта"...)
Application.terminate;


не подойдет :))


 
Андрей Прокофьев ©   (2002-11-01 18:26) [8]

Юрий Зотов © (01.11.02 18:25)
:))


 
Николай Быков ©   (2002-11-01 18:29) [9]

2 Юрий Зотов
А вы то за что издеваетесь надо мной?


 
Darts   (2002-11-01 18:32) [10]

см. FormatMessageA() из kernel32


 
Андрей Прокофьев ©   (2002-11-01 18:33) [11]

Вот это работает!!!

Windows.SetParent(GetDeskTopWindow(), Self.Handle);


 
TTCustomDelphiMaster ©   (2002-11-01 18:44) [12]

Андрей Прокофьев © (01.11.02 18:33)

На w2k - не работает :(


 
Дмитрий Баранов ©   (2002-11-01 18:48) [13]

program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;

type PInteger = ^integer;
var p: pointer;
begin
p := nil;
PInteger(p)^:=100;
readln;
end.


 
TTCustomDelphiMaster ©   (2002-11-01 18:48) [14]

Darts
Мне не сообшение нужно, а чтобы в результате выполнения кода возникла ошибка.


 
Андрей Прокофьев ©   (2002-11-01 18:55) [15]

TTCustomDelphiMaster © (01.11.02 18:48)
asm
int $21
end;

на Win9*


 
Юрий Зотов ©   (2002-11-01 18:59) [16]

> Николай Быков © (01.11.02 18:29)

Я не издеваюсь. Я шучу. Это совершенно разные вещи, так ведь?

Издеваюсь я иначе, можете спросить у старожилов сайта. Но лучше этого не делать, а то, боюсь, опять издеваться над кем-нибудь придется. Не люблю, но иногда заставляют.


 
Дмитрий Баранов ©   (2002-11-01 19:03) [17]

Наверное, тебе стоит обратиться к Digitman"у, который наверняка даст тебе пару тысяч советов поломать как память, так и прочие запчасти


 
TTCustomDelphiMaster ©   (2002-11-01 19:08) [18]

Дмитрий Баранов

Да что то похожее, но только чтобы работало в GUI приложениях


 
TTCustomDelphiMaster ©   (2002-11-01 19:28) [19]

Андрей Прокофьев © (01.11.02 18:55)
Acces Violation at address ... :(

Дмитрий Баранов © (01.11.02 19:03)
Digitman появится только в понедельник :( А я хотел на выходных позаниматься этим вопросом.

Вобщем штука такая. Есть ода программка (не моя :), которая работает с довольно серьезным оборудованием. Так вот она переодически выдет такие сообщения. Зачем и почему это происходит великая тайна :)
Так вот хотелось бы в своих приложениях попробовать сделать обработчик подобных ошибок (навсякий случай) с расшифровочкой и чтобы все это в лог скидывалось для "разбора полетов". Но сначала нужно получить такую ошибку.
Как думаете реально ли сделать обработку таких ошибок или при возникновении их приложение уже похоронено?


 
vuk ©   (2002-11-01 19:38) [20]

>Так вот хотелось бы в своих приложениях попробовать сделать
>обработчик подобных ошибок (навсякий случай) с расшифровочкой и
>чтобы все это в лог скидывалось для "разбора полетов".
Сходите на JEDI и возьмите JCL ( http://sourceforge.net/projects/jcl/). Там есть модули, которые при возникновении исключения даже стек вызовов раскручивают в удобочитаемом виде (при наличии TD32 Debug Info, разумеется).


 
Pat ©   (2002-11-01 19:51) [21]

asm
mov sp,0
push sp
end;


 
cyborg ©   (2002-11-01 20:13) [22]

Очень просто, например стоит только обратиться к части несозданного объекта.


 
Дремучий ©   (2002-11-01 20:17) [23]


> Как думаете реально ли сделать обработку таких ошибок или
> при возникновении их приложение уже похоронено?

может и не похоронено... а может и...
на одно такое окошко мож ошибок 20(абсолютно разных) приходится...

как по мне, так
отлаживать прогу (без исходников?) (ту о которой ты говоришь) - гиблое дело


 
TTCustomDelphiMaster ©   (2002-11-01 20:54) [24]

Pat © (01.11.02 19:51)

Ну это уж чересчур... Покруче атомной бомбы будет :)


 
TTCustomDelphiMaster ©   (2002-11-01 21:12) [25]


> cyborg © (01.11.02 20:13)
> Очень просто, например стоит только обратиться к части несозданного
> объекта.


По моему это приведет к Acces Violation


> Дремучий © (01.11.02 20:17)
> как по мне, так
> отлаживать прогу (без исходников?) (ту о которой ты говоришь)
> - гиблое дело

Это не для той проги это "накладка на ручку граблей" в моих программах


 
evgeg ©   (2002-11-01 21:25) [26]

Бескрнечная рекурсия?


 
TTCustomDelphiMaster ©   (2002-11-01 22:03) [27]

evgeg © (01.11.02 21:25)

Не помогает


 
Pat ©   (2002-11-01 22:11) [28]

>TTCustomDelphiMaster © (01.11.02 20:54)
Ну так ведь работает (правда я не понимаю, что она делает, может кто подскажет :-)))
Разве не это надо было? :)


 
TTCustomDelphiMaster ©   (2002-11-01 23:20) [29]

Pat
Регистр SP указывае на вершину стека. В стек заносится адрес возврата из процедуры (и много чего еще). При измении значения SP нарушается ход выполнения программы (т.е. возврат из процедуры будет не на следующую команду, а неизвестно куда). Кроме этого при помещении в SP 0 стеку уже некуда расти.


 
cyborg ©   (2002-11-02 10:12) [30]

>TTCustomDelphiMaster ©
>По моему это приведет к Acces Violation
Да, ошибся немного.

Можно попробовать на асме call куда нибудь сделать, может поможет :)


 
TTCustomDelphiMaster ©   (2002-11-03 10:24) [31]


> Можно попробовать на асме call куда нибудь сделать


Знать бы куда...


 
TTCustomDelphiMaster ©   (2002-11-03 22:57) [32]

Может кто нибуть поделиться опытом :)


 
Cobalt ©   (2002-11-04 00:37) [33]

Поминтся, где-то в заголовке PE-executable было поле, отвечающее за то, кто реагирует на такие ошибки, как GeneralProtectFault и т.п.



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

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

Наверх




Память: 0.54 MB
Время: 0.018 c
1-69263
iguana
2002-11-11 20:10
2002.11.21
ламерский вопрос


14-69511
MFV
2002-11-01 23:47
2002.11.21
Fujitsu отзывает жесткие диски


3-69160
MsGuns
2002-10-29 15:48
2002.11.21
Неудобоваримый LookUp или я родился баобабом


4-69627
vidiv
2002-10-09 06:26
2002.11.21
как получить иконку ярлыка без стрелки


3-69201
MMF
2002-11-01 14:32
2002.11.21
Почему может не формироваться список окон в MDI