program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
function a(i :longint): integer;
begin
a := 1 div i;
end;
procedure b(var i : longint);
begin
i := a(i);
end;
var i : longint;
begin { TODO -oUser -cConsole Main : Insert code here }
i := 0;
b(i);
writeln(i);
end.
Обработка исключений try except
Или вы всеже хотите производить декомпиляцию???
Еще раз: хочу
1. При завершении по ошибке получить посмертный дамп.
2. В вызываемой подпрограмме получать строку с именем вызывающей.
Дело в том, что подавляющее число компиляторов сами составляют такие таблицы и на их основе осуществляют вывод посмертного дампа. Над изготовлением такой таблицы ручками я, разумеется, думал, но эта идея мне не понравлась.
В ТМТ, собственно, я при необходимости получить название вызывающей подпрограммы добываю ее из этой формируемой компилятором таблицы. Хотелось бы иметь возможность делать то же самое из Дельфи.
Подключать дизассемблер - и мысли такой не было. Не нужно это.
Ладно, "копать" в сторону SetUnhandledExceptionFilter я попробую, но, честно говоря, не верится, что такая функция как посмертный дамп может отсутствовать в мало-мальски серьезном крмпиляторе. Неужели в Дельфях это так?
Другое дело, что в любом компиляторе эта функция подключается только при компиляции в отладочном режиме и отключена в основном. Может и Дельфи здесь все-таки следуют стандарту de facto, и эту функцию можно как-то включить?