سؤال

ما هي الخطوات التفصيلية حول كيفية تصحيح أخطاء Delphi IDE؟

أفهم، من المشاركات الأخرى، أن المرء يحتاج إلى إنشاء مشروع، وفي إعدادات مصحح أخطاء المشروع، قم بتعيين "التطبيق المضيف" للمشروع على دلفي (C:\Program Files\Borland\BDS\3.0\Bin\bds.exe).ثم، عند تشغيل المشروع في مصحح الأخطاء (عن طريق الضغط على زر F9 المفتاح)، يجب أن يظهر مثيل ثانٍ لـ Delphi IDE.

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

تحفيز

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

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

المحلول

من المرجح أن يكون مشروعك من نوع EXE.لا تحتاج المشاريع من نوع EXE إلى تطبيقات مضيفة، لذا يتم تجاهل الإعداد، ولا يتم بدء أي بيئة تطوير متكاملة (IDE) أخرى.كحد أدنى، يجب أن تجعل مشروعك من نوع DLL:سيبدأ ذلك IDE الثاني، لكنه لن يكون مفيدًا جدًا.

عادةً ما يتم استخدام التقنية التي ذكرتها لتصحيح أخطاء حزمة وقت التصميم المشاريع.قم بإنشاء مشروع حزمة وقت التصميم، وقم بتثبيته في IDE، وقم بتعيين التطبيق المضيف للمشروع ليكون IDE، وقم بتعيين بعض نقاط التوقف، ثم اضغط على F9 وستبدأ نسخة ثانية من دلفي.

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

نصائح أخرى

أود أولاً التحقق مما إذا كان التعليق يحدث في وقت التشغيل وكذلك في وقت التصميم.قم بإنشاء مثيل للمكون ديناميكيًا في كود وقت التشغيل الخاص بك.في حالة استمرار حدوث التعليق، يمكنك التنقل خلال التعليمات البرمجية المصدر للمكون بشكل طبيعي باستخدام مثيل مصحح أخطاء واحد.لا تحتاج إلى تصحيح الأخطاء في مثيل IDE قيد التشغيل إلا إذا حدث السلوك داخل عملية IDE فقط.

ابحث أولاً عن حزم المكونات وافتحها، ثم قم بتشغيل خيارات إنشاء حزمة وقت التشغيل ووقت التصميم من الإصدار إلى التصحيح، إذا لم تكن كذلك بالفعل، ثم أعد البناء.

ثم احفظ مجموعة مشاريع تحتوي على حزمتي المشاريع (وقت تصميم واحد ووقت تشغيل واحد، في بعض الحالات الاستثنائية، يكون لدى الأشخاص حزمة واحدة فقط، وهي وقت التصميم + وقت التشغيل في حزمة واحدة).

ثم اتبع الخطوات لتعيين BDS.exe كتطبيق مضيف.

سأحاول أن أضيف بعضًا منها OutputDebugString رسائل إلى المكون الذي تعلم أنه معطل:

البناء:

constructor TMyComponent.Create(AOwner:TComponent);
begin
    inherited;
    // other stuff.
    OutputDebugString('Created TMyComponent');
end;

المدمرة:

destructor TMyComponent.Destroy(AOwner:TComponent);
begin
    OutputDebugString('Destructor TMyComponent starts');
    inherited;
    // other stuff.
    OutputDebugString('Destructor TMyComponent finish');
end;

قسم الإنهاء للوحدة التي يوجد بها TMyComponent:

 finalization
      OutputDebugString('Finalization section for Unit MyComponentUnit');
 end.

بالنظر إلى صفحة أحداث الإخراج في مصحح أخطاء دلفي، يمكنك معرفة المدى الذي وصل إليه الكود، وحتى إذا لم تحصل على نقطة توقف استثناء يمكنك استخدامها لتحديد موقع الخلل بدقة إلى حد ما، يمكنك استخدام أي من رسائل OutputDebugString مثل ما سبق، أو يمكنك حتى تعيين فقط نقاط التوقف غير المتكسرة في دلفي، وقم بإيقاف تشغيل خاصية نقطة التوقف "الكسر عند الاستثناء" وقم بدلاً من ذلك بإعداد "رسالة سجل".تتمتع هذه الرسائل (رسائل نقاط التوقف) بميزة عدم المطالبة بأي ضرر للمكون الخاص بك من أجل إضافة بعض الإمكانات البسيطة مثل "طباعة بيان التصحيح" إلى مجموعة أدوات التصحيح الخاصة بك.

إذا لم يتم تشغيل المثيل الثاني من دلفي، فهذا يعني أن المسار إلى bds.exe غير صحيح.

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