2

前几天遇到一个奇怪的bug

每当我的程序(正在调试)尝试打开保存对话框时,Delphi 2007 IDE 就会因外部异常而崩溃。我将其缩小到任何包含由 upx 压缩的 exe 的文件夹。

即,如果文件夹中的所有 exe 都是正常/未压缩的,那么一切都很好。但是,如果其中一个 exe 文件已使用 upx 压缩,则当 opendialog 尝试打开该文件夹时 IDE 会崩溃。

我怀疑 Windows shell 加载了 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 堆栈跟踪的屏幕截图 在此处输入图像描述

4

0 回答 0