GetStackTrace в Delphi 7? - PullRequest
       17

GetStackTrace в Delphi 7?

10 голосов
/ 16 ноября 2009

Используя Delphi 7, как я могу получить строку, представляющую трассировку стека из Exception?

try
  SomethingDodgy();
except
  on E:Exception do begin
    // print stack trace
    Log.Write(/* ??? */);
  end;
end;

Я слышал, что в последней версии Delphi есть функция GetStackTrace, но я не могу найтичто-нибудь для delphi 7. Нет, обновление не вариант:)

Ответы [ 4 ]

15 голосов
/ 16 ноября 2009

Вы можете попробовать использовать madExcept , замечательную среду обработки исключений.

У Мадши есть куча примеров кода; Я уверен, что я использовал там ранее трассировку стека.

Как отметил Дмитрий, JCL также имеет код трассировки стека; старый образец здесь .

5 голосов
/ 16 ноября 2009

Кидаю EurekaLog в игре. Это отличный инструмент и совсем не дорогой.

1 голос
/ 16 ноября 2009

MemChk довольно прост в использовании (особенно для поиска / обнаружения утечек памяти) и знает, как отобразить трассировку стека по адресу кода.

0 голосов
/ 16 ноября 2009

Трассировка стека в Win32 не так хороша, как в .NET или Java (а в последней версии Delphi используется трассировка стека .NET).
Во всяком случае, я нашел одну ссылку, которая предоставляет дополнительную информацию по этому вопросу здесь (он находится на ExeEx, поэтому для просмотра этого решения нажмите первую ссылку в поиске).

См. Внизу страницы там.

...