Форум: "Потрепаться";
Текущий архив: 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