الحساب تجاوز الحد الأدنى أو استثناء تجاوز سعة أثناء التصحيح

StackOverflow https://stackoverflow.com/questions/56655

سؤال

هذا هو اليوم من سلوك غريب.

لدينا Win32 مشروع مع دلفي 2007 ، التي تستضيف .NET runtime ويدعو إلى .صافي أن تظهر أشكال جديدة كجزء من الفترة الانتقالية.

في الآونة الأخيرة بدأنا تعاني من الاستثناءات عشوائيا على ما يبدو مواقع نقاط من التعليمات البرمجية:تجاوز الحساب أو تجاوز الحد الأدنى.

تتبع المكدس من واحدة من هذه تبدو مثل هذا:

at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.RunDialog(Form form)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
at System.Windows.Forms.Form.ShowDialog()
at Gatsoft.Gat.UI.Windows.Forms.Remanaging.RemanageForm.DelphiOpenInNewMode(String employeeCode, String departmentCode, DateTime date) in C:\Dev\VS.NET\Gatsoft\Gatsoft.Gat.UI.Windows\Forms\Remanaging\RemanageForm.Delphi.cs:line 67

في Visual Studio حل أحد قصوى مكتبات فئة (ie.تسحب في جميع المراجع التي يمكن أن) ، مجموعة محددة تصحيح البرنامج استهدفت على دلفي إخراج المشروع.وهذا يسمح لنا أن التصحيح .صافي رمز من Visual Studio, على الرغم من المجمع الرئيسي من البرنامج هو مكتوب في دلفي.

وتحدث هذه المشكلة فقط عند تشغيل من المصحح ، وليس لو أننا فقط تشغيل ملف exe مباشرة (إما عن طريق explorer, اختصارات, أو حتى Ctrl+F5 داخل Visual Studio).

هناك على ما يبدو أي برامج التجسس على الجهاز (كما ألمح من قبل هذا).

أي الأشياء الأخرى التي يمكن أن تحقق ؟


تحرير: يبدو مثل .الصافي المصحح هو تمكين هذه سنان الأعلام ، دلفي لا مصحح أخطاء.يجب التحقيق في هذا, ولكن الآن سوف تقبل @لورينزو Boccaccia's الإجابة.

على ما يبدو حلها

حسنا يبدو أننا أخيرا قد مسمر هذه المشكلة.بدأت المشكلة التي تحدث دون وجود المصحح تعلق أيضا اختبار لدينا ، لذلك كان علينا أن الأولوية مشكلة الطريق.

وأخيرا وجدنا مسألة مشتركة مع الآلات التي لديه مشكلة ، فهي ديل Lattitude D620 أجهزة الكمبيوتر المحمولة مع NVIDIA Quadro NVS 110M مع برنامج التشغيل القديم من نظام الصورة المستخدمة لتوفير أجهزة الكمبيوتر المحمولة من مرة في 2006.

لقد وجدت وظيفة على شبكة الإنترنت, على الرغم من أنني فقدت url عندما تمهيد لتحديث برنامج تشغيل العرض هذا كان .صافي خدمة تحطمها في الغالب عندما يكون الجهاز كان مشغول تفعل شيئا على الشاشة.طريقة واحدة لإنتاج مشكلته لفتح موجه الأوامر إلى C:\ والقيام DIR /S فقط القوة كمية هائلة من شاشة التحديثات التي من شأنها أن تؤدي إلى تحطم الطائرة.

هو أيضا لديه بطاقة الفيديو نفيديا.

المشكلة على الجهاز الخاص بي حدث تقريبا كل 2-4 الناشئة من برنامجنا ، ولكن بعد تحديث برنامج تشغيل الفيديو لدي 123 الناجحة من الشركات الناشئة دون أي مشاكل.(راجع للشغل يمكنني أن أوصي اوتو هات كي-AutoHotKey من أجل مثل هذه الأمور).

لذا يبدو أننا وجدنا الجاني قديم/عربات التي تجرها الدواب سائق نفيديا.

تحديث هذا السؤال بحيث ربما شخص ما في المستقبل يمكن توفير بعض الوقت.

الآن إذا سمحت لي أنا ذاهب تبكي في الزاوية.

جلب النحس!

يجب أن نحس ذلك.لم تكد نشرت لي فوق تحديث من زميل المحمول فشلت بعد تحديث برنامج تشغيل الفيديو.

لا يزال, أنا متأكد انها مشكلة خارج التطبيق لدينا الآن ، لذلك يبقى مجرد معرفة أي أشياء محددة إلى تحديث.


مزيد من التحديثات:حسنا الجهاز الخاص بي هو الآن على ما يبدو ثابت ، وليس ذلك مع زملائي آلة.حتى الآن قمنا بتحديث BIOS, برامج تشغيل الصوت و حاليا SP3 for XP هو في طريقها.

حرق في الاختبار سوف يتم الليلة ، حيث التطبيق سيتم ترك بين عشية وضحاها بدء ، كما أن المشكلة تفجرت إما أثناء بدء التشغيل أو في المرة الأولى بعض WinForms .صافي رمز أعدم.هذا التطبيق هو أساسا دلفي Win32 التطبيق ، ولكن تستضيف .NET runtime, و يبدو أن المشكلة تكون ذات صلة .صافي رمز.عندما كنا "الحذاء".وقت تشغيل NET, مشكلة يمكن أن تظهر ، أو عندما الحريق الأول .صافي نافذة من Win32 ثم أنها يمكن أن تظهر أيضا.


إحصائيا أنا مستعد للافراج عن هذا الرمز الآن.خلال الليل التطبيق قد بدأت 3051 مرات بدون أخطاء ، بينما قبل تحديث برنامج تشغيل الفيديو تحطمت كل 2-4 مرات.

حث وجدت(!/?)

هذا إصلاح الخلل المحنة أشعر مثل الذهاب إلى الطبيب ، حيث المحادثة التالية أو كليهما:

Doc: Does this hurt?
Me: No...
Doc: What about now?

لقد حث ومطعون التطبيق وأخيرا أعتقد أني وجدت شيئا فعلنا ذلك عرض هذه المشكلة.

في التطبيق لدينا نحن المضيف .NET runtime من دلفي 2007 التطبيق Win32 و في الغراء رمز لدينا السطر التالي (الآن):

  rc := CorBindToRuntimeEx('v2.0.50727', 'wks',
  STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN or STARTUP_CONCURRENT_GC,
  @clsid, @iid, UnkRuntimeEngine);

اثنين من الثوابت في الوسط كان هناك في الأصل مجرد 0 ، وهذا يعني اختيار الإعدادات الافتراضية.هذا التغيير كان عرض قبل بضعة أشهر كانت المشكلة يزحف ببطء على الولايات المتحدة بعد هذا.تغيير عرض من أجل تشجيع النمل التعريف في تحميل لدينا التطبيق Win32 + استضافتها .صافي وقت التشغيل من أجل القيام الأداء التنميط التغييرات التي أدخلت مرة أخرى ثم جعل هذا العمل.بالإضافة إلى ذلك, المشكلة مع تجاوز الحساب/تجاوز الحد الأدنى قد تم ببطء تزداد سوءا لذا أراهن المشكلة لم تظهر لفترة من الوقت بعد التغيير لذلك لم ينسب إلى أي من التغييرات فعلنا.

أيضا, لأننا فقط (الأصل) رأيت مشكلة عند تشغيل من خلال المصحح ، كنا نظن أن شيئا ما كان خطأ مع Visual Studio و/أو دلفي.

على كل حال إحصائيا الآن مع متصفح على شاشة واحدة القيام تكرار التمرير صعودا وهبوطا سببها جافا سكريبت (على ما يبدو اللازمة لتحريك علة) ، ثم تمكنت بنجاح بدء تشغيل التطبيق 726 مرات مع 0 في الدعوة ، وتعطل 5 من أصل 17 مرة مع اثنين من الثوابت هناك.

Doc: Does this hurt?

و دعونا لا ندخل في من صنع هذا التغيير في المقام الأول.أنا متأكد من الجاني يريد أن يبقى مجهول... السعال

هل كانت مفيدة؟

المحلول

إصدار تصحيح مرتبط dll يمكن جمعه مع الإشارات نان الدعم ، انظر http://blogs.msdn.com/oldnewthing/archive/2008/07/02/8679191.aspx على سبيل المثال من هذه المشكلة.

أن heisenbug كان سببه غير مهيأ المتغيرات ، هنا يمكن أن يكون هناك ربط dll تمكين سنان ميزة وحدة المعالجة المركزية و نسيان تعطيله عند عودته

نصائح أخرى

لا تحدث أخطاء لا تزال تحدث في حالة إرفاق مصحح الأخطاء بعد بدء التطبيق ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top