Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.009 c
3-69184
mafiya
2002-11-01 08:32
2002.11.21
Treeview для базы данных


14-69566
Oleg_Gashev
2002-11-04 01:07
2002.11.21
Занимательные задачи-2


3-69181
Tornado
2002-10-30 22:07
2002.11.21
ADO + Access


7-69610
savva
2002-09-19 15:31
2002.11.21
Sleep и разная частота процессоров.


1-69229
BALU1111
2002-11-11 15:38
2002.11.21
Отключение Task Manager





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский