JclLastExceptStackListToStrings создает пустой список строк - PullRequest
2 голосов
/ 16 января 2011

Я установил JCL в Delphi 2010. В следующем коде

try
  raise Exception.Create('Error Message');
except
  on E: Exception do
  begin
    ResultStatus := JclLastExceptStackListToStrings(sl, True, True, True, True);
  end;
end;

Также у меня есть этот вызов в разделе инициализации:

initialization
  JclStartExceptionTracking;

ResultStatus имеет значение false и sl пуст. Я установил параметры для создания карт и файлов .jdbg. Другие функции, такие как ProcByLevel, работают нормально. Есть ли что-то еще, что мне нужно сделать, чтобы JclLastExceptStackListToStrings работал?

Из файла JclDebug.pas:

Последнее изменение: $ Дата :: 2010-09-07 19:43:19 +0200 (март, 07 сентября 2010 г.) Редакция: $ Rev :: 3331

Ответы [ 4 ]

1 голос
/ 16 января 2011

Попробуйте позвонить

JclStartExceptionTracking;

в самом начале вашего приложения.

[Редактировать] Вы уже есть. Тогда у меня сейчас нет предложений. [/ Edit]

0 голосов
/ 03 февраля 2015

Я застрял с этой проблемой в течение нескольких дней. Отслеживание стека JCL работало с моими программами, и я смог точно определить местоположение ошибки. Каким-то образом это просто перестало работать.

Затем я работал с демоверсией JCL, чтобы посмотреть, работает ли она без проблем. Это сработало очень хорошо. Я установил все параметры проекта в демо, но моя программа не создавала дамп стека, пока демо работало каждый раз.

Внезапно я заметил, что единственная разница между моей программой и демонстрацией - это архитектура процессора. Демо 32 бит, а моя программа 64 бит.

Я скомпилировал демонстрационную версию JCL как 64-битную, и она тоже перестала работать. Он работает только с 32-битным кодом. Не 64 бита.

К сожалению, моей программе требуется 6-7 гигабайт памяти, и я не могу использовать 32-битный режим. Я предлагаю использовать Eurekalog, так как он работает для обеих архитектур.

0 голосов
/ 22 ноября 2013

Я решаю эту проблему в Delphi XE 1.

  1. открыть Параметры проекта меню
  2. open Delphi Compiler узел дерева
  3. выберите Связывание Узел дерева
  4. включить Отладочная информация флажок
0 голосов
/ 18 января 2011

Я использую:

JclStackTrackingOptions: = [stStack, stExceptFrame, stRawMode, stAllModules, stStaticModuleList];

...