"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تحسين تصحيح أخطاء "printf".

تحسين تصحيح أخطاء "printf".

تم النشر بتاريخ 2024-11-03
تصفح:702

يعد تصحيح الأخطاء "printf" أحد أكثر تقنيات تصحيح الأخطاء شيوعًا، وهو شائع بشكل خاص لأن معظم الأشخاص يتعلمونه بشكل حدسي عند كتابة برامجهم الأولى.

يمكن الوصول بسهولة إلى تصحيح أخطاء

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

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

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

ملاحظة: تعرض هذه المقالة ميزات IntelliJ IDEA. قد تكون أو لا تتوفر ميزات مماثلة في بيئات تطوير متكاملة أخرى. إذا كنت تستخدم أداة مختلفة، ففكر في التحقق من وثائقها لمعرفة ما إذا كانت هذه الميزات موجودة أيضًا.

قوالب حية

يوفر IntelliJ IDEA قوالب مباشرة لأنماط تسجيل تصحيح الأخطاء الأكثر شيوعًا. لاستخدام قالب مباشر لتسجيل التصحيح، أدخل الاختصار المقابل واضغط على Tab. سيقوم IntelliJ IDEA بإنشاء بيان الطباعة وإدراجه في المؤشر.

دعونا نلقي نظرة على بعض الأمثلة.

تسجيل معلمات الطريقة

public static BufferedImage recolor(BufferedImage in, BufferedImage mask, int newColor) {

    // escriba 'soutp' aquí, luego presione Tab

    return null;
}

الكود المولد:

public static BufferedImage recolor(BufferedImage in, BufferedImage mask, int newColor) {

    System.out.println("in = "   in   ", mask = "   mask   ", newColor = "   newColor);

    return null;
}

تسجيل القيم

public static double coolMethod(double parameter) {
    double a = Math.random();
    double b = Math.random();

    // escriba 'soutv' aquí, presione Tab y luego seleccione el valor

    return a * b * parameter;
}

الكود المولد:

public static double coolMethod(double parameter) {
    double a = Math.random();
    double b = Math.random();

    System.out.println("b = "   b);

    return a * b * parameter;
}

تسجيل إدخالات الطريقة

public static BufferedImage recolor(BufferedImage in, BufferedImage mask, int newColor) {

    // escriba 'soutm' aquí

    return null;
}

الكود المولد:

public static BufferedImage recolor(BufferedImage in, BufferedImage mask, int newColor) {

    System.out.println("ImageUtils.recolor");

    return null;
}

تسجيل نقاط التوقف

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

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

Depuración

لتعيين نقطة توقف للتسجيل، اضغط مع الاستمرار على Shift، ثم انقر في الهامش. وعلى عكس نقطة التوقف العادية، فهي لا توقف تنفيذ البرنامج مؤقتًا، بل تطبع بدلاً من ذلك إلى وحدة التحكم.

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

Depuración

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

عندما تصبح نقاط التوقف للسجل عديدة، يمكنك تتبعها وإدارتها في مربع الحوار نقاط التوقف (تشغيل | عرض النقاط الفاصلة ):

Depuración

يمكنك أيضًا إنشاء مجموعات مخصصة لهم:

Depuración

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

سجل الأحداث المتكررة

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

Depuración

بالنسبة لهذه الأحداث، قد يكون من المفيد استخدام وظيفة عدد التمريرات. يمكنك الوصول إليه في مربع الحوار Breakpoints.

.

Depuración

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

ملخص

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

إذا كنت مهتمًا بمزيد من المقالات المتعلقة بتصحيح الأخطاء والتنميط، فراجع بعض مقالاتي الأخرى:

  • Debugger.godMode() – اختراق تطبيق JVM باستخدام المصحح
  • استكشاف أخطاء مصحح الأخطاء البطيء وإصلاحها
  • ما الخطأ في createDirectories()؟ - دليل لملف تعريف وحدة المعالجة المركزية
  • تصحيح الأخطاء بدون نقاط توقف
بيان الافراج تم نشر هذه المقالة على: https://dev.to/flounder4130/depuracion-printf-mejorada-26l1?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3