2011-03-03 5 views
9

में रोके गए ऐप को जारी करते समय क्रैश करें, हम अक्सर डी2007 डीबगर में ऐप शुरू करते समय क्रैश का अनुभव करते हैं, इसे रोकते हैं और इसे जारी रखते हैं (F9 दबाकर)।डेल्फी2007: डीबगर

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; 
  • बचाने के लिए और एप्लिकेशन
  • डिबग: उदाहरण के लिए

    • एक VCL एप्लिकेशन
    • ड्रॉप एक TButton और मुख्य रूप
    • Button1 के लिए इस onclick हैंडलर जोड़ने पर एक TEdit बनाने प्रेस बटन 1

    • आईडीई
    • पर ध्यान केंद्रित करें "रोकें" बटन
    • प्रेस F9 दबाएं।

    लगभग हमेशा हमें एक उल्लंघन उल्लंघन मिलता है। मैंने विंडोज 7/64 बिट के तहत इसका परीक्षण किया, मेरे सहयोगी एक्सपी/32 बिट के तहत। मेरे सहयोगी के डी 2006 में हम इस त्रुटि को पुन: उत्पन्न नहीं कर सके।

    क्या आप इसे पुन: पेश कर सकते हैं? क्या इसे ठीक करने का कोइ उपाय है?

  • +0

    मैं XP/32 बिट पर डेल्फी 2007 का उपयोग कर रहा हूं और त्रुटि को पुन: उत्पन्न नहीं कर सकता – Bharat

    +0

    पर एक नज़र डालें क्यूसी। अगर आपको कुछ ऐसा नहीं मिल रहा है तो एक रिपोर्ट जमा करें। –

    +0

    @ डेविड: मैंने पहले ही क्यूसी की खोज की है और कुछ भी प्रासंगिक नहीं मिला है। –

    उत्तर

    2

    हमारे पास यह अब और फिर डी 2010 (और पहले डी 2007 में) में है, लेकिन मैं इसे पुन: पेश नहीं कर सका। (हम 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) और के कच्चे ढेर ट्रेसिंग वर्तमान डेल्फी धागा (उस त्रुटि दे दी है?), मैं निम्नलिखित ढेर देखें:

    [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 
    

    मैं "AcLayers.DLL" खोजा है मैं एक लेख (http पाया (क्योंकि यह थोड़ा अजीब भी मुझे लगता है): //www.nynaeve.net/?p=62) Vista संगतता मोड और अजीब क्रैश के बारे में ... उचित रूप से D2007 Win7 के साथ संगत नहीं है?

    संपादित करें 3: जब मैं संगतता मोड के बिना डी 2007 चलाता हूं (?, केवल एक्सई चला रहा है, टास्कबार में पिन किए गए आइटम का उपयोग नहीं कर रहा है!) मुझे एक ही त्रुटि कम बार मिलती है और स्टैक AcLayers.DLL को और नहीं दिखाता है , लेकिन मैं नहीं देख सकता कि क्या गलत हो रहा है (कुछ और जांच की आवश्यकता है, उसके लिए अब और अधिक समय नहीं है)

    +0

    का उपयोग कर सभी टिमम जांच के लिए धन्यवाद! पुन: विस्टा: समस्या मेरे सहयोगी की एक्सपी मशीन पर होती है। मैं आपके स्टैक दर्शक को देख लूंगा। –

    +0

    मुझे "डीबग आउटपुट" लाइनें नहीं दिखाई देती हैं। क्या आप जानते हैं कि वे कहां से आए हैं? - मुझे गुगलिंग से नहीं मिला। –