سؤال

أعتقد أنني أفهم الفرق بين الأوضاع وتصحيح وضع التصحيح. الاختلافات الرئيسية التي تكون في وضع التصحيح، لم يتم تحسين المنصوص عليه القابل للتنفيذ (لأن هذا قد يجعل تصحيح الأخطاء أصعب) ويتم تضمين رموز التصحيح.

أثناء بناء PCRE، واحدة من التبعيات الخارجية ل WinMerge، لاحظت وضع البناء الذي لم أره من قبل: relwithdebinfo.

يتم ذكر الفرق بين التصحيح و relwithdebinfo هنا: http://www.cmake.org/pipermail/cmake/2001-october/002479.html.وبعد إبريد: "relwithdebinfo يشبه تماما وضع الإصدار. إنه ينتج رمز محسن تماما، ولكنه يقوم أيضا ببناء قاعدة بيانات البرنامج، وإدراج معلومات خط التصحيح لإعطاء مصحح فرصة جيدة في التخمين حيث يوجد في التعليمات البرمجية في أي وقت."

هذا يبدو وكأنه فكرة جيدة حقا، ولكن ليس من الواضح بالضرورة كيفية الإعداد. يصف هذا الرابط كيفية تمكين هذا من أجل VC ++: http://www.cygnus-software.com/papers/release_debuggging.html.

هل أنا أفتقد شيئا ما، أو لا معنى له في ترجمة جميع رمز الإصدار كما relwithdebinfo؟

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

المحلول

هل أنا أفتقد شيئا ما، أو لا معنى له في ترجمة جميع رمز الإصدار كما relwithdebinfo؟

ذلك يعتمد على مقدار تثق في عميلك مع معلومات التصحيح.

معلومات اضافية:

تشفي GCC معلومات التصحيح في رمز الكائن.

هنا هو ما يعادل PDB لجمعية دول مجلس التعاون الخليجي:

كيفية توليد رمز تصحيح دول مجلس التعاون الخليجي خارج هدف البناء؟

ملاحظة، لا يبدو أن CMAKE لدعم هذا النهج خارج الصندوق.

نصائح أخرى

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

يعتمد إصدار تصحيح الأخطاء مع رموز التصحيح نادرا ما يختلف عن تصحيح تصحيح الأخطاء، لذلك أوصي بذلك دائما القيام بذلك.

ومع ذلك، أنا لا أعرف ما إذا كان هناك أي عيوب. سيكون من المثير للاهتمام أن نسمع، إذا كان الأمر كذلك.

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

في الأساس، أرى حالتين عندما تحتاج إلى هذا:

  • لديك مشكلة لا تظهر في builds تصحيح الأخطاء، لذلك عليك تصحيح بناء إصدار
  • لديك تحطم في عملاء واستخدام معلومات التصحيح المخزنة محليا لفهم التعطل.

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

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

لا يحتاج قانون الإنتاج إلى حجم المعلومات التي تحمل معلومات تصحيح الأخطاء.

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

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