سؤال

يعمل Breakgpoint Debug بشكل جيد في جميع الوحدات 38 الأخرى من نظامي. ولكن، في Datamodule، التي تحتوي على + - 10.000 خطوط، تعطيل Delphi ثم بعد إطلاقها بواسطة F9 / F8 / F7. في أي جزء من المصدر هذه الوحدة، حتى على الخطوات البدائية مثل OnCreate، SQLConnection.active: = صحيح، إلخ. التفاصيل: يعمل بشكل جيد حتى + - قبل 20 يوما. أنا أستخدم D7 ولدي جميع مصادر المكونات أيضا. شكرا فيليب

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

المحلول 4

اكتشفت هذه المشكلة. إنه سلوك غريب في Delphi7 الذي يحد من عدد الحقول في قسم فئة الواجهة، بين: اكتب TDM = فئة (tdatamodule) والقسم الخاص. قمت بحذف بعض الحقول (حقول البيانات (+--40 الحقول)) وتشغيل degub مرة أخرى. أضف هذه الحقول مرة أخرى، ولا يعمل التصحيح. أنا متأكد من أن هذا هو الحد، لأنه لا Mather أي حقول مكون محذوفة. حاولت مع العديد من الحقول، من جداول مختلفة أيضا، إضافة، اختبار والحذف. إنه عار، لكنه صحيح ... شكرا لمساعدتكم.

نصائح أخرى

حاول القيام ببناء كامل (SHIFT + F9). إذا لم ينجح ذلك، فما يحدث إذا كنت محاكاة نقطة توقف في الكود مع أدناه؟

asm int 3 end;

تحقق من نسخ متعددة من ملف المصدر الخاص بك ل Datamodule. في بعض الأحيان، تعتقد الشفرة أنك تقوم بتشغيلها ليست هي رمز الترجمة والأصحاب المصحح يرون.

بعد ذلك، تأكد من أنك لم تقم بإيقاف تشغيل الأخطاء بطريق الخطأ في التعليمات البرمجية الخاصة بك مع {$ d-} أو {$ debuginfo OFF}. يمكن أن يؤدي ذلك إلى إيقاف تشغيل معلومات التصحيح لوحدة واحدة.

أيضا، تأكد من تشغيله على تصحيح الأخطاء المتكاملة في الأدوات | خيارات | خيارات مصحح الأخطاء. أعلم أنك قلت أنك تستطيع تصحيح أماكن أخرى، لكن لا يمكن أن تضررت بالتأكد من أن التصحيح المتكامل لم يكتسب بطريق الخطأ بطريقة أو بأخرى.

لدي ذاكرة غامضة تم تصحيح ملفات كبيرة جدا على D7 قديم. حاول كسر وحدة كبيرة في عدة فصول و SE إذا كنت تستطيع تصحيح خارج وحدتك. يمكن أن يكون خيار آخر لإيقاف تشغيل Debuginfo في ملفك الكبير باستثناء القسم الذي تريد تصحيحه. فمن يستحق المحاولة.

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

كان لدينا نفس القضية مع Datamodule كبيرة في دلفي 5 التي لن تسمح لنا بتصحيحها، ونوع وضعه إلى أنه ملف كبير جدا لتصحيح ودعيتها لا تحب ذلك. عندما انتقلنا إلى دلفي 2007، يمكننا تصحيحها مرة أخرى. لست متأكدا من السبب، لم يتغير شيء (رمز الحكمة).

Felipe، هي الوحدة التي لن تسمح لك بتصحيح DLL يتم نقلها إلى ذاكرة أو خارجها؟ لقد وجدت عند تصحيح DLL لكير في أنه إذا قمت بشيء ما في القابل للتنفيذ الذي ينفذ التعليمات البرمجية في DLL آخر أو إلغاء تحميل DLL أن وحدة المشكلة في - Delphi ستقوم بتعطيل جميع نقاط التوقف. عادة ما تكون إعادة تشغيل Delphi وتأكد من الاحتفاظ بمثيل واحد ل DLL وحدة المشكلة في الذاكرة هو الحل الوحيد لهذه المشكلة.

أشك في الحجم هو المشكلة، حيث لدي وحدة خط 17K التي أخبستها بانتظام.

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