Сбой отладчика Delphi (OpenDialog + сжатый exe)

Несколько дней назад я столкнулся со странной ошибкой

Всякий раз, когда моя программа (в процессе отладки) пытается открыть сохраненный файл, Delphi 2007 IDE падает с внешним исключением. Я сузил его до любой папки, содержащей exe-файл, расположенный с помощью upx.

Т.е. если все exe в папке нормальные / несжатые, то все хорошо. Но если один из exe-файлов был сжат с помощью upx, то IDE падает, когда opendialog пытается открыть эту папку.

Я подозреваю, что оболочка Windows загружает модуль exe (например, для отображения его значка) и IDE замечает это и пытается загрузить отладочную информацию для этого exe-файла и в тот момент вылетает.

Есть идеи, как решить эту проблему? Моя тестовая программа прилагается

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    SaveDialog1: TSaveDialog;
    procedure FormClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);
begin
  SaveDialog1.Execute()
end;

end.

ОБНОВЛЕНИЕ: Добавлен скриншот с трассировкой стека IDE

0 ответов

Другие вопросы по тегам