2011-03-03 15 views
9

D2007デバッガでアプリケーションを起動し、一時停止してから(F9キーを押して)続行するとクラッシュすることがよくあります。例えばDelphi2007:デバッガで一時停止したアプリケーションを続行するとクラッシュする

  • Button1の本のOnClickハンドラの追加メインフォーム上
  • をVCLアプリ

  • ドロップのTButtonとTEDITを作成:アプリ
  • を保存し、デバッグ

    procedure TForm1.Button1Click(Sender: TObject); 
    var 
        i: Integer; 
    begin 
        while True do 
        begin 
        for i := 0 to 9999 do 
         Edit1.Text := IntToStr(Random(i)); 
        Application.ProcessMessages; 
        end; 
    end; 
    
  • をButton1を押す
  • フォーカスを合わせるIDE
  • 「一時停止」ボタン
  • F9を押します。

ほとんどの場合、アクセス違反が発生します。私はWindows 7/64bit、XP/32bitの下で私の同僚の下でこれをテストしました。私の同僚のD2006では、このエラーを再現できませんでした。

これを再現できますか?どのようにそれを修正するための任意のアイデア?

+0

私はデルファイ2007をXP/32ビットで使用しています。エラーは再現しません。 – Bharat

+0

QC。似たようなものが見つからない場合は、レポートを提出してください。 –

+0

@David:私はすでにQCを検索していて、関連するものは何も見つかりませんでした。 –

答えて

2

私たちもこれを今、そしてD2010(そして前のD2007)に持っていますが、私はこれを再現できませんでした。 (Win7 64bitも使用しています) テストアプリでこれを再現しようとします。さて、これは何とか解決されることを願って...

編集:D2010でこれを再現することはできません... D2007

EDIT2をしようとします。しかし、私はD2007でこれを再現することができます!
私はまた、イベントログにいくつかの奇妙なエラーを取得:

私は私のスタックビューアを使用
Debug Output: *** A stack buffer overrun occurred in "C:\test\Project7.exe" : Process Project7.exe (2584) 
Debug Output: This is usually the result of a memory copy to a local buffer or structure where the size is not properly calculated/checked. Process Project7.exe (2584) 
Debug Output: If this bug ends up in the shipping product, it could be a severe security hole. Process Project7.exe (2584) 
Debug Output: The stack trace should show the guilty function (the function directly above __report_gsfailure). Process Project7.exe (2584) 
Debug Output: *** enter .exr 772B43D0 for the exception record Process Project7.exe (2584) 
Debug Output: *** then kb to get the faulting stack Process Project7.exe (2584) 

(http://code.google.com/p/asmprofiler/wiki/ProcessStackViewer)との生のスタックトレース現在のDelphiのスレッド(エラーを与えた?)、私は次のスタックを参照してください:(それは私も少し奇妙に思えるので)

[772791B3]{ntdll.dll } RtlUnhandledExceptionFilter + $12 
[7725CDF4]{ntdll.dll } Unknown function at CsrVerifyRegion + $1B0 
[771D28A6]{ntdll.dll } memcpy + $5E6 
[7725CDE4]{ntdll.dll } Unknown function at CsrVerifyRegion + $1A0 
[7725CDF4]{ntdll.dll } Unknown function at CsrVerifyRegion + $1B0 
[77243509]{ntdll.dll } Unknown function at RtlUlonglongByteSwap + $16299 
[771F6AC9]{ntdll.dll } Unknown function at RtlDosSearchPath_Ustr + $ADA 
[771F6ADD]{ntdll.dll } Unknown function at RtlDosSearchPath_Ustr + $AEE 
[771F6A9B]{ntdll.dll } Unknown function at RtlDosSearchPath_Ustr + $AAC 
[77220AE5]{ntdll.dll } Unknown function at WinSqmSetIfMaxDWORD + $35 
[771F6A3D]{ntdll.dll } Unknown function at RtlDosSearchPath_Ustr + $A4E 
[77220AE5]{ntdll.dll } Unknown function at WinSqmSetIfMaxDWORD + $35 
[6E931AE0]{AcLayers.DLL} Unknown function at NotifyShims + $73B6 
[771C010F]{ntdll.dll } KiUserExceptionDispatcher + $F 
[6E931AE0]{AcLayers.DLL} Unknown function at NotifyShims + $73B6 
[771E9960]{ntdll.dll } Unknown function at RtlQueryEnvironmentVariable + $241 
[6E8E0000]{AcLayers.DLL} + $0 
[771EA172]{ntdll.dll } Unknown function at RtlAllocateActivationContextStack + $1CF 
[6E8E1FFF]{AcLayers.DLL} + $0 
[6E8E0000]{AcLayers.DLL} + $0 
[768F4AF9]{ole32.dll } Unknown function at ObjectStublessClient31 + $4AF6 
[772B206C]{ntdll.dll } NlsAnsiCodePage + $205C 
[771EA14C]{ntdll.dll } Unknown function at RtlAllocateActivationContextStack + $1A9 
[6E8E1FFF]{AcLayers.DLL} + $0 
[77220AE5]{ntdll.dll } Unknown function at WinSqmSetIfMaxDWORD + $35 
[771E9E5C]{ntdll.dll } Unknown function at RtlDecodePointer + $F7 
[768F4B4D]{ole32.dll } Unknown function at ObjectStublessClient31 + $4B4A 
[77220AE5]{ntdll.dll } Unknown function at WinSqmSetIfMaxDWORD + $35 
[771E9E89]{ntdll.dll } LdrInitializeThunk + $10 
[771B0000]{ntdll.dll } + $0 
[771B0000]{ntdll.dll } + $0 
[7720EAB0]{ntdll.dll } RtlExitUserThread + $0 
[771C0190]{ntdll.dll } RtlUserThreadStart + $0 

を私が記事(HTTPを見つけた「AcLayers.DLL」で検索//www.nynaeve.net/?p=62)Vista互換モードと奇妙なクラッシュについて...おそらくD2007はWin7と互換性がありませんか?

編集3:D2007を互換モードなしで実行したとき(?、単にタスクバーのピン留めされた項目を使用しないでexeを実行しています)、同じエラーが発生する頻度が少なく、スタックにAcLayers.DLLが表示されなくなりました。しかし、私は何がうまくいかないのか分かりません。(これ以上調べる必要はありません。)

+0

調査してくれてありがとう!再Vista:私の同僚のXPマシンで問題が発生します。スタックビューアを見ていきます。 –

+0

「デバッグ出力」行が表示されません。彼らはどこから来たのか分かりますか? - 私はグーグルでそれを見つけることができませんでした。 –

関連する問題