JclLastExceptStackListToStrings создает пустой список строк

Я установил 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 ответа

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

JclStartExceptionTracking;

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

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

Я использую:

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

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

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

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

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

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

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

  1. открыть меню параметров проекта
  2. открыть узел дерева Delphi Compiler
  3. выберите узел дерева ссылок
  4. включить флажок " Отладочная информация"
Другие вопросы по тегам