غب الخيار ثنائي.
لينكس تعليمي - غنو غب مصحح القيادة الغش ورقة.
غب لديه خيار واجهة المستخدم الرسومية وحدة التحكم المتاحة مع خيار سطر الأوامر --tui. وحدة تحكم النص واجهة المستخدم: غب --tui الأمر تماما مثل غب العادية مع شاشة المصدر.
هوتو: غب بروتوكول التسلسلي البعيد - إمبيكوسم.
يوفر بروتوكول تسلسل غب عن بعد (رسب) بروتوكول مستوى عال يسمح غب للاتصال بأي هدف عن بعد. إذا تم تعريف بنية الهدف في غب.
هاكم: تفكيك ملف إلف - مانوهار فانغا.
ومن المثير للاهتمام، تشغيل ثنائي تحت غب أعطى رسالة ترحيب وضعت خصيصا:
كروميوم أوس ديفيلوبر غايد - ذي كروميوم بروجيكتس.
يصف هذا الدليل كيفية العمل على نظام التشغيل كروميوم. إذا كنت تريد المساعدة في تطوير نظام التشغيل كروميوم وكنت تبحث عن معلومات تفصيلية ...
غب - الأساسية تفريغ تحليل الملف - كومة تجاوز.
تحتاج فقط إلى ثنائي (مع تضمين رموز التصحيح) التي هي مماثلة لتلك التي ولدت النواة. ثم يمكنك تشغيل مسار غب / إلى / / مسار ثنائي / إلى /.
غس متخيل.
غس متخيل هو أداة مجانية التي تخلق خرائط قابلة للتخصيص وملامح من بيانات غس (تراكلوغس ونقاط الطريق)، عناوين، أو إحداثيات.
يوفر فالغريند غبسيرفر وظائف إضافية فالغريند محددة عن طريق & كوت؛ أوامر مراقبة & كوت ؛. يمكن إرسال أوامر المراقبة هذه من سطر الأوامر غب أو من.
دليل المستخدم بيلدروت.
بيلدروت هو الأداة التي تبسط وأتمتة عملية بناء نظام لينكس كاملة لنظام مضمن، وذلك باستخدام عبر تجميع.
بوستفيكس التصحيح هوتو.
الغرض من هذه الوثيقة. توضح هذه الوثيقة كيفية تصحيح أجزاء من نظام البريد بوستفيكس عندما لا تعمل الأمور وفقا للتوقعات.
التصور والمجموعات الفرعية من الكون الكيميائي.
قاعدة بيانات الكون الكيميائية غب-13، التي تعداد 977 مليون جزيئات عضوية تصل إلى 13 ذرة من C، N، O، S و كل بعد استقرار كيميائي بسيط و.
خيار ثنائي غب
عند تشغيل برنامج ضمن غب، يجب أولا إنشاء معلومات تصحيح الأخطاء عند تجميعه. يمكنك بدء غب مع الحجج، إن وجدت، في بيئة من اختيارك. يمكنك إعادة توجيه مدخلات البرنامج وإخراجه، وتصحيح عملية قيد التشغيل بالفعل، أو قتل عملية طفل.
من أجل تصحيح البرنامج بشكل فعال، تحتاج إلى إنشاء معلومات تصحيح الأخطاء عند تجميعه. يتم تخزين معلومات تصحيح الأخطاء هذه في ملف الكائن؛ فإنه يصف نوع البيانات من كل متغير أو وظيفة والمراسلات بين أرقام سطر المصدر والعناوين في التعليمات البرمجية القابلة للتنفيذ.
لطلب معلومات تصحيح الأخطاء، حدد الخيار `-g 'عند تشغيل أداة التحويل البرمجي.
العديد من مترجم C غير قادرين على التعامل مع `-g 'و` - O' الخيارات معا. باستخدام هذه المجمعين، لا يمكنك إنشاء التنفيذية التنفيذية التي تحتوي على معلومات تصحيح الأخطاء.
دول مجلس التعاون الخليجي، غنو C مترجم، ويدعم `-g 'مع أو بدون` - O'، مما يجعل من الممكن لتصحيح التعليمات البرمجية الأمثل. نوصي دائما باستخدام `-g 'كلما قمت بتجميع البرنامج. قد تعتقد أن البرنامج الخاص بك هو الصحيح، ولكن ليس هناك معنى في دفع حظك.
عند تصحيح برنامج تجميع مع `-g - O '، تذكر أن محسن هو إعادة ترتيب التعليمات البرمجية الخاصة بك؛ المصحح يظهر لك ما هو حقا هناك. لا يفاجأ جدا عندما مسار التنفيذ لا يتطابق تماما ملف المصدر الخاص بك! مثال متطرف: إذا قمت بتعريف متغير، ولكن لم تستخدم أبدا، غب لا يرى هذا المتغير - لأن المترجم يحسن من وجودها.
بعض الأشياء لا تعمل كذلك مع `-G - O 'كما هو الحال مع` ز' فقط، وخاصة على الأجهزة مع جدولة التعليمات. إذا كنت في شك، إعادة ترجمة مع `-g 'وحدها، وإذا كان هذا يثبت المشكلة، يرجى الإبلاغ عنها لنا خلل (بما في ذلك حالة اختبار!).
الإصدارات القديمة من مترجم غنو C يسمح خيار البديل `-gg 'لتصحيح الأخطاء. لم يعد غب يدعم هذا الشكل؛ إذا كان لديك مترجم غنو C هذا الخيار، لا تستخدمه.
تشغيل r استخدام الأمر تشغيل لبدء البرنامج الخاص بك تحت غب. يجب عليك أولا تحديد اسم البرنامج (باستثناء فكسوركس) مع وسيطة إلى غب (راجع القسم الحصول على الدخول والخروج من غب)، أو باستخدام الأمر ملف أو ملف إيكسيك (راجع قسم الأوامر لتحديد الملفات).
إذا كنت تقوم بتشغيل البرنامج في بيئة التنفيذ التي تدعم العمليات تشغيل تشغيل عملية أقل مما يجعل هذه العملية تشغيل البرنامج. (في البيئات دون عمليات، يقفز تشغيل إلى بداية البرنامج.)
ويتأثر تنفيذ البرنامج ببعض المعلومات التي يتلقاها من رئيسه. يوفر غب طرقا لتحديد هذه المعلومات، والتي يجب عليك القيام بها قبل بدء البرنامج. (يمكنك تغييره بعد بدء البرنامج، ولكن هذه التغييرات تؤثر فقط على البرنامج الخاص بك في المرة القادمة التي تبدأ فيه.) ويمكن تقسيم هذه المعلومات إلى أربع فئات:
الحجج. حدد الوسيطات لإعطاء البرنامج الخاص بك كوسيطة الأمر رن. إذا كانت قذيفة متاحة على الهدف الخاص بك، يتم استخدام قذيفة لتمرير الوسيطات، بحيث يمكنك استخدام الاتفاقيات العادية (مثل توسيع حرف البدل أو استبدال متغير) في وصف الوسيطات. في أنظمة أونيكس، يمكنك التحكم في القشرة التي يتم استخدامها مع متغير بيئة شل. راجع القسم وسيطات البرنامج. البيئة. عادة ما يرث البرنامج بيئته من غب، ولكن يمكنك استخدام بيئة مجموعة الأوامر غب والبيئة غير المحددة لتغيير أجزاء من البيئة التي تؤثر على البرنامج. انظر القسم بيئة البرنامج. دليل العمل. ويرث البرنامج دليل العمل الخاص به من غب. يمكنك تعيين دليل عمل غب مع الأمر سد في غب. راجع القسم دليل عمل البرنامج. المدخلات والمخرجات القياسية. يستخدم البرنامج عادة نفس الجهاز للإدخال القياسي والإخراج القياسي كما يستخدم غب. يمكنك إعادة توجيه المدخلات والمخرجات في سطر الأوامر، أو يمكنك استخدام الأمر تي لتعيين جهاز مختلف لبرنامجك. انظر القسم مدخلات البرنامج وإخراجه. تحذير: أثناء إعادة إدخال المدخلات والمخرجات العمل، لا يمكنك استخدام الأنابيب لتمرير الإخراج من البرنامج كنت التصحيح لبرنامج آخر. إذا حاولت هذا، من المرجح أن يختتم غب التصحيح برنامج خاطئ.
عند إصدار أمر التشغيل، يبدأ البرنامج في التنفيذ فورا. انظر القسم التوقف والاستمرار، لمناقشة كيفية ترتيب برنامجك لوقف. بمجرد توقف البرنامج، يمكنك استدعاء وظائف في البرنامج الخاص بك، وذلك باستخدام أوامر الطباعة أو المكالمة. راجع قسم فحص البيانات.
إذا تغير وقت تعديل ملف الرمز الخاص بك منذ آخر مرة قراءة غب رموزها، غب يتجاهل الجدول رمزها، وقراءتها مرة أخرى. عندما يفعل هذا، غب يحاول الاحتفاظ نقاط التوقف الحالية.
يمكن تحديد الحجج لبرنامجك بواسطة وسيطات الأمر رن. يتم تمريرها إلى قذيفة، الذي يوسع أحرف البدل ويؤدي إعادة توجيه I / O، ومن ثم إلى البرنامج الخاص بك. يحدد متغير البيئة شل (إذا كان موجودا) ما يستخدم غب شل. إذا كنت لا تعرف شل، يستخدم غب / بن / ش.
تشغيل مع عدم وجود وسيطات يستخدم نفس الوسيطات المستخدمة من قبل تشغيل السابق، أو تلك التي تم تعيينها من قبل مجموعة الأمر أرجس.
سيت أرجس حدد الوسيطات التي سيتم استخدامها في المرة التالية التي يتم فيها تشغيل البرنامج. إذا مجموعة يجادل ليس له حجج، تشغيل ينفذ البرنامج الخاص بك مع أي الحجج. مرة واحدة كنت قد قمت بتشغيل البرنامج الخاص بك مع الحجج، باستخدام مجموعة يجادل قبل المدى التالي هو السبيل الوحيد لتشغيله مرة أخرى دون الحجج. شو أرجس إظهار الوسيطات لإعطاء البرنامج الخاص بك عند بدء تشغيله.
وتتكون البيئة من مجموعة من المتغيرات البيئية وقيمها. متغيرات البيئة تسجيل تقليديا أشياء مثل اسم المستخدم الخاص بك، الدليل الرئيسي الخاص بك، نوع المحطة الطرفية، ومسار البحث الخاص بك لتشغيل البرامج. عادة ما تقوم بإعداد متغيرات بيئة مع القذيفة ورثت من قبل جميع البرامج الأخرى التي تقوم بتشغيلها. عند التصحيح، يمكن أن يكون من المفيد محاولة تشغيل البرنامج الخاص بك مع بيئة معدلة دون الحاجة إلى بدء غب مرة أخرى.
دليل المسار إضافة دليل إلى الجزء الأمامي من متغير بيئة باث (مسار البحث عن الملفات القابلة للتنفيذ)، لكل من غب وبرنامجك. يمكنك تحديد العديد من أسماء الدليل، مفصولة ب `: 'أو مسافة بيضاء. إذا كان الدليل بالفعل في المسار، يتم نقله إلى الأمام، لذلك يتم البحث في وقت أقرب. يمكنك استخدام السلسلة '$ كود' للإشارة إلى ما هو دليل العمل الحالي في الوقت الذي يبحث غب عن المسار. إذا كنت تستخدم `. ' بدلا من ذلك، فإنه يشير إلى الدليل حيث قمت بتنفيذ الأمر المسار. يحل غب محل `. ' في وسيطة الدليل (مع المسار الحالي) قبل إضافة الدليل إلى مسار البحث. شو باثس عرض قائمة مسارات البحث عن الملفات القابلة للتنفيذ (متغير بيئة باث). شو إنفيرونمنت [فارنام] اطبع قيمة متغير البيئة فارنام الذي يعطى للبرنامج عند بدء تشغيله. إذا لم تقم بتوريد فارنام، فقم بطباعة أسماء وقيم جميع متغيرات البيئة التي سيتم إعطاؤها لبرنامجك. يمكنك اختصار البيئة كما إنف. سيت إنفيرونمنت فارنام [=] فالو تعيين متغير البيئة فارنام إلى القيمة. التغييرات القيمة لبرنامجك فقط، وليس ل غب نفسه. القيمة قد تكون أي سلسلة. وقيم متغيرات البيئة هي مجرد سلاسل، ويتم توفير أي تفسير من قبل البرنامج نفسه. معلمة القيمة اختيارية. إذا تم حذفه، يتم تعيين المتغير إلى قيمة فارغة. على سبيل المثال، هذا الأمر: يروي برنامج أونيكس، عند تشغيله لاحقا، أن مستخدمه يسمى 'فو'. (المساحات حول `= 'تستخدم لوضوح هنا؛ غير مطلوبة في الواقع.) غير محدد البيئة فارنام إزالة فارنام المتغيرة من البيئة التي سيتم تمريرها إلى البرنامج الخاص بك. هذا يختلف عن `سيت إنف فارنام = '؛ بيئة غير محددة إزالة المتغير من البيئة بدلا من تعيين قيمة فارغة.
تحذير: غب يدير البرنامج باستخدام قذيفة المشار إليها من قبل متغير البيئة شل الخاص بك إذا كان موجودا (أو / بن / ش إن لم يكن). إذا كان متغير شل الخاص بك يسمي قذيفة تقوم بتشغيل ملف تهيئة - مثل `.cshrc 'ل C-شل أو`.bashrc' ل باش - أي متغيرات قمت بتعيينها في هذا الملف تؤثر على البرنامج الخاص بك. قد ترغب في نقل إعداد متغيرات البيئة إلى الملفات التي يتم تشغيلها فقط عند تسجيل الدخول، مثل `.login 'أو`.profile'.
في كل مرة تقوم فيها بتشغيل البرنامج الخاص بك مع تشغيل، فإنه يرث دليل العمل من دليل العمل الحالي من غب. دليل عمل غب هو في البداية ما ورث من العملية الأم (عادة قذيفة)، ولكن يمكنك تحديد دليل عمل جديد في غب مع الأمر سد.
يعمل دليل عمل غب أيضا كإعداد افتراضي للأوامر التي تحدد ملفات غب لتشغيلها. انظر القسم أوامر لتحديد الملفات.
سد ديركتوري قم بتعيين دليل عمل غب إلى الدليل. بود طباعة دليل عمل غب.
افتراضيا، البرنامج الذي تقوم بتشغيله تحت غب لا المدخلات والمخرجات إلى نفس المحطة التي يستخدمها غب. غب تحويل المحطة إلى وسائط الطرفية الخاصة بها للتفاعل معك، لكنه يسجل وسائط المحطة التي كان البرنامج يستخدمها ويتحول إليها مرة أخرى عند الاستمرار في تشغيل البرنامج.
إنفو ترمينال يعرض المعلومات المسجلة بواسطة غب حول أوضاع الجهاز التي يستخدمها البرنامج.
يمكنك إعادة توجيه مدخلات البرنامج و / أو الإخراج باستخدام إعادة توجيه شل مع الأمر تشغيل. فمثلا،
يبدأ البرنامج الخاص بك، وتحويل انتاجها إلى ملف `أوتفيل '.
طريقة أخرى لتحديد مكان البرنامج يجب أن تفعل المدخلات والمخرجات هو مع الأمر تي. يقبل هذا الأمر اسم ملف كوسيطة ويؤدي هذا الملف إلى الافتراضي لتشغيل الأوامر المستقبلية. كما أنه يعيد تعيين محطة التحكم لعملية الطفل، لأوامر تشغيل في المستقبل. فمثلا،
يوجه تلك العمليات التي بدأت مع الأوامر تشغيل لاحقة الافتراضي أن تفعل الإدخال والإخراج على محطة `/ ديف / تيب 'ويكون ذلك كمحطة التحكم الخاصة بهم.
إعادة توجيه صريحة في التشغيل يتجاوز تأثير الأمر تي على جهاز الإدخال / الإخراج، ولكن ليس تأثيره على محطة التحكم.
عند استخدام الأمر تي أو إعادة توجيه الإدخال في الأمر تشغيل، يتأثر فقط المدخلات لبرنامجك. مدخلات غب لا يزال يأتي من محطة الخاص بك.
أتاش بروسيس-إد يعلق هذا الأمر على عملية قيد التشغيل - واحد الذي بدأ خارج غب. (تظهر ملفات المعلومات أهدافك النشطة.) يأخذ الأمر كوسيطة معرف العملية. الطريقة المعتادة لمعرفة العملية معرف من عملية يونكس مع الأداة المساعدة بس، أو مع `وظائف - l 'شل الأمر. نعلق لا تكرر إذا ضغطت ريت مرة ثانية بعد تنفيذ الأمر.
لاستخدام الملحق، يجب أن يكون البرنامج قيد التشغيل في بيئة تدعم العمليات؛ على سبيل المثال، نعلق لا يعمل للبرامج على الأهداف عارية التي تفتقر إلى نظام التشغيل. يجب أن يكون لديك إذن لإرسال العملية إشارة.
عند استخدام إرفاق، يجب أولا استخدام الأمر ملف لتحديد البرنامج قيد التشغيل في عملية وتحميل الجدول رمز لها. انظر القسم أوامر لتحديد الملفات.
أول شيء غب يفعل بعد ترتيب لتصحيح العملية المحددة هو وقفها. يمكنك فحص وتعديل عملية مرفقة مع كافة الأوامر غب التي تتوفر عادة عند بدء العمليات مع تشغيل. يمكنك إدراج نقاط التوقف. يمكنك خطوة ومتابعة. يمكنك تعديل التخزين. إذا كنت تفضل مواصلة تشغيل العملية، يمكنك استخدام الأمر متابعة بعد إرفاق غب العملية.
ديتاش عند الانتهاء من تصحيح العملية المرفقة، يمكنك استخدام الأمر ديتاش لتحريره من عنصر التحكم غب. ويستمر فصل العملية في تنفيذها. بعد الأمر فصل، هذه العملية و غب تصبح مستقلة تماما مرة أخرى، وكنت على استعداد لإرفاق عملية أخرى أو بدء تشغيل واحد مع تشغيل. فصل لا تكرر إذا ضغطت ريت مرة أخرى بعد تنفيذ الأمر.
إذا قمت بإنهاء غب أو استخدام الأمر رن أثناء وجود عملية مرفقة، فإنك تقتل هذه العملية. بشكل افتراضي، يطلب غب تأكيد إذا حاولت القيام بأي من هذه الأمور؛ يمكنك التحكم في ما إذا كنت تحتاج إلى تأكيد باستخدام الأمر سيت سيت (انظر القسم التحذيرات والرسائل الاختيارية).
هذا الأمر مفيد إذا كنت ترغب في تصحيح تفريغ الأساسية بدلا من عملية قيد التشغيل. يتجاهل غب أي ملف تفريغ أساسي أثناء تشغيل البرنامج.
في بعض أنظمة التشغيل، لا يمكن تنفيذ برنامج خارج غب في حين لديك نقاط التوقف تعيين عليه داخل غب. يمكنك استخدام الأمر كيل في هذه الحالة للسماح بتشغيل البرنامج خارج مصحح الأخطاء.
أمر القتل مفيد أيضا إذا كنت ترغب في إعادة ترجمة وإعادة ربط البرنامج الخاص بك، لأنه على العديد من الأنظمة فإنه من المستحيل تعديل ملف قابل للتنفيذ أثناء تشغيله في عملية. في هذه الحالة، عند تشغيل النوع التالي، تلاحظ غب أن الملف قد تغير، وقراءة جدول الرموز مرة أخرى (أثناء محاولة الحفاظ على إعدادات نقطة التوقف الحالية).
توفر بعض أنظمة التشغيل منشأة تسمى `/ بروك 'يمكن استخدامها لفحص صورة عملية قيد التشغيل باستخدام نظام فرعي لنظام الملفات. إذا تم تكوين غب لنظام التشغيل مع هذا المرفق، تتوفر معلومات الأمر بروك للإبلاغ عن عدة أنواع من المعلومات حول عملية تشغيل البرنامج. إنفو بروك يعمل فقط على أنظمة SVR4 التي تدعم بروكفس.
معلومات بروك تلخيص المعلومات المتاحة حول العملية. إنفو بروك مابينغس تقرير عن نطاقات العناوين التي يمكن الوصول إليها في البرنامج، مع معلومات حول ما إذا كان البرنامج قد يقرأ أو يكتب أو ينفذ كل نطاق. إنفو بروك تيمس وقت البدء، وقت وحدة المعالجة المركزية للمستخدم، ونظام وحدة المعالجة المركزية الوقت لبرنامجك وأطفالها. إنفو بروك إد تقرير عن معرفات العملية المتعلقة ببرنامجك: معرف العملية الخاص به، ومعرف الوالد الخاص به، ومعرف مجموعة العمليات، ومعرف الجلسة. معلومات حالة بروك معلومات عامة عن حالة العملية. إذا تم إيقاف العملية، يتضمن هذا التقرير سبب التوقف، وأي إشارة يتم تلقيها. إنفو بروك آل عرض كل المعلومات الواردة أعلاه حول هذه العملية.
في بعض أنظمة التشغيل، قد يكون لبرنامج واحد أكثر من مؤشر ترابط واحد من التنفيذ. تختلف الدلالات الدقيقة للخيوط من نظام تشغيل واحد إلى آخر، ولكن بشكل عام تكون سلاسل الترابط لبرنامج واحد أقرب إلى عمليات متعددة - إلا أنها تتشارك مساحة عنوان واحد (أي أنها يمكن أن تدرس جميع المتغيرات نفسها وتعديلها) . من ناحية أخرى، كل مؤشر لديه سجلات الخاصة بها و كومة التنفيذ، وربما الذاكرة الخاصة.
يوفر غب هذه التسهيلات لتصحيح الأخطاء متعددة البرامج:
إخطار تلقائي من المواضيع الجديدة `موضوع ثريدنو '، أمر للتبديل بين المواضيع` المواضيع المعلومات'، أمر للاستفسار عن المواضيع الموجودة `موضوع تطبيق [ثريدنو] [جميع] أرجس، أمر لتطبيق أمر إلى قائمة من المواضيع نقاط توقف محددة الموضوع.
تحذير: هذه المرافق ليست متاحة بعد على كل تكوين غب حيث يدعم نظام التشغيل المواضيع. إذا كان غب الخاص بك لا يدعم مؤشرات الترابط، فإن هذه الأوامر ليس لها أي تأثير. على سبيل المثال، لا يظهر أي نظام بدون دعم مؤشر ترابط أية مخرجات من `سلاسل معلومات المعلومات '، ويرفض دائما أمر مؤشر الترابط، كما يلي:
مرفق التصحيح غب مؤشر الترابط يسمح لك لمراقبة جميع المواضيع أثناء تشغيل البرنامج الخاص بك - ولكن كلما غب السيطرة، موضوع واحد على وجه الخصوص هو دائما التركيز التصحيح. ويسمى هذا الموضوع مؤشر الترابط الحالي. تظهر أوامر التصحيح معلومات البرنامج من منظور مؤشر الترابط الحالي.
عندما يكتشف غب خيط جديد في البرنامج الخاص بك، فإنه يعرض تعريف النظام المستهدف لخيط الترابط مع رسالة في شكل `[سيستاغ جديد] '. سيستاغ هو معرف خيط الذي يختلف شكل اعتمادا على نظام معين. على سبيل المثال، على لينكسوس، قد ترى.
عندما غب إشعارات مؤشر ترابط جديد. في المقابل، على نظام سغي، سيستاغ هو ببساطة شيء مثل `عملية 368 '، مع عدم وجود تصفيات أخرى.
لأغراض تصحيح الأخطاء، يقوم غب بربط رقم مؤشر الترابط الخاص به - دائما عدد صحيح واحد - مع كل مؤشر ترابط في البرنامج.
معلومات المواضيع عرض ملخص لكل المواضيع الموجودة حاليا في البرنامج. يعرض غب لكل مؤشر ترابط (بهذا الترتيب): رقم مؤشر الترابط المعين بواسطة غب معرف مؤشر النظام المستهدف (سيستاغ) ملخص إطار المكدس الحالي لمؤشر الترابط هذا تشير العلامة النجمية * * 'إلى يسار رقم مؤشر ترابط غب إلى مؤشر الترابط الحالي . على سبيل المثال، موضوع ثريدنو جعل ثريدنو عدد الصفحات الموضوع الحالي. وسيطة الأمر ثريدنو هي رقم خيط غب الداخلي، كما هو مبين في الحقل الأول من شاشة 'معلومات المواضيع'. يستجيب غب من خلال عرض معرف النظام لسلسلة الرسائل التي حددتها وملخص إطار المكدس الحالي: كما هو الحال مع `[جديد. ] '، فإن شكل النص بعد' التبديل إلى 'يعتمد على اتفاقيات النظام الخاص بك لتحديد مؤشرات الترابط. ثرياد أبلي [ثريدنو] [آل] أرجس الأمر تطبيق ترابط يسمح لك بتطبيق أمر واحد أو أكثر من المواضيع. حدد أرقام سلاسل الترابط التي تريد أن تتأثر مع وسيطة الأمر ثريدنو. ثريدنو هو عدد غب الداخلي عدد، كما هو مبين في الحقل الأول من 'معلومات المواضيع' عرض. لتطبيق أمر على كافة مؤشرات الترابط، استخدم مؤشر الترابط تطبيق جميع أرجس.
كلما توقف غب عن برنامجك، بسبب نقطة توقف أو إشارة، فإنه تلقائيا بتحديد مؤشر الترابط حيث حدث ذلك نقطة أو إشارة. غب ينبهك إلى السياق التبديل مع رسالة من شكل `[التحول إلى سيستاغ] 'لتحديد مؤشر الترابط.
راجع القسم إيقاف برامج متعددة سلاسل الترابط وبدء تشغيلها، للحصول على مزيد من المعلومات حول كيفية تصرف غب عند إيقاف وبدء البرامج مع مؤشرات ترابط متعددة.
راجع القسم ضبط نقاط المراقبة، للحصول على معلومات حول نقاط المراقبة في البرامج ذات سلاسل الترابط المتعددة.
غب ليس لديه دعم خاص لبرامج التصحيح التي تخلق عمليات إضافية باستخدام وظيفة شوكة. عندما شوك برنامج، سوف تستمر غب لتصحيح العملية الأم وعملية الطفل سوف تعمل دون عوائق. إذا قمت بتعيين نقطة توقف في أي رمز الذي ينفذ الطفل بعد ذلك، فإن الطفل الحصول على إشارة سيغراب التي (إلا إذا كان يمسك إشارة) سوف يؤدي إلى إنهاء.
ومع ذلك، إذا كنت ترغب في تصحيح عملية الطفل هناك الحل الذي ليس مؤلما جدا. وضع مكالمة للنوم في التعليمات البرمجية التي عملية الطفل ينفذ بعد شوكة. قد يكون من المفيد للنوم فقط إذا تم تعيين متغير بيئة معينة، أو وجود ملف معين، بحيث لا يلزم حدوث تأخير عندما كنت لا تريد تشغيل غب على الطفل. في حين أن الطفل ينام، استخدم برنامج بس للحصول على معرف العملية. ثم نقول غب (استدعاء جديد من غب إذا كنت أيضا تصحيح العملية الأصل) لإرفاق عملية الطفل (انظر القسم التصحيح عملية قيد التشغيل بالفعل). من تلك النقطة على يمكنك تصحيح عملية الطفل تماما مثل أي عملية أخرى التي تعلق عليها.
غب الخيار ثنائي.
غب طباعة متغير في ثنائي للتجارة فوركستريند في كييف.
غب برينت فاريابل إن بيناري ترادينغ الموضوعات التي يتم تناولها هي: فالغريند لديه آلية تابيردور التي من خلالها برنامج العميل يمكن أن تمر كل طريقة من الطلبات و.
وثائق غزابيل.
غارمين مابسورس - غب (غب). الخيار الثنائي. 101 أوبنستريتماب داتا فيليز (أوسم.
مينغو - الحد الأدنى من غنو لنظام التشغيل ويندوز - تصفح ...
9/15/2018 & # 0183؛ & # 32؛ الإصدار الحالي_ غب -5.2.1: 2003-02-18: 17: المجاميع: 17 العناصر:. ، في الخيار الخاص بك، كأداة مثبت واجهة المستخدم الرسومية. بمجرد إعداد، يمكنك ثم استخدامه في أي وقت،.
كيفية استخدام معلومات التصحيح في ملفات منفصلة مع غب.
كيفية استخدام معلومات التصحيح في ملفات منفصلة مع غب. . إنشاء ثنائي مع المعلومات التصحيح جزءا لا يتجزأ كما. (راجع وثائق الخيار - build-إد).
غب - موقع أندي - sites. google.
طباعة تمثيل ثنائي من 4 بايت. غب وسائط؛ سيت غب - أوبتيون فالو: تعيين خيار غب: تعيين تسجيل على مجموعة تسجيل الخروج إيقاف تسجيل تسجيل ملف تسجيل ملف السجل:
التصحيح مع غب: التصحيح عن بعد.
التصحيح مع غب: التصحيح عن بعد. ليس من الضروري أن نشير غبسيرفر في ثنائي لعملية التشغيل. على غب. (قد تحتاج أيضا إلى `--baud.
تطوير غزابيل: غزابيل التوثيق.
وثائق غزابيل. جدول المحتويات. . إيسيغس شكل ثنائي. استخدام غب خيار الطريق لإنشاء كتيب هتمل بسيط.
غب شكل الطباعة ثنائي التداول ستوكاستيك الفوركس المصنع.
غب تنسيق الطباعة تداول ثنائي معلومات عن بورصة بلجيكا نقاط التوقف؛ . أحد الخيارات هو عندما تحتاج إلى مقارنة قيمتين لمعرفة ما إذا كانت.
غب الأخبار - جنو.
غب: مصحح مشروع غنو [غب مينتينرز]. غب أخبار 7 سبتمبر 2017: غب 8.0.1. لاحظ أنه يتم إيقاف ثنائي غبتوي، بدءا من غب 7.5.
باستخدام بوش و كعب عن بعد غب.
باستخدام بوش و كعب عن بعد غب. . مجرد تشغيل جعل ويجب أن يكون لديك بوش ثنائي التي تحتوي على كعب غب في الخاص بك. تمكين خيار غبستوب في.
فيليكس أبيكاسيس.
المشاريع والتجارب & # 8230؛
غب - التصحيح تجريد الثنائيات.
قبل بضعة أيام أجريت مناقشة مع زميل حول كيفية تصحيح ثنائي مجرد على لينكس مع غب.
أمس قرأت أيضا مقالا من زميل سابق في إبيتا حول التصحيح مع قيادة دمسغ.
لذلك قررت أن أكتب مقالتي الخاصة، هنا سوف تظهر كيفية استخدام غب مع ثنائي تجريده.
برنامج اختبار.
أولا وقبل كل شيء، وهنا هو برنامج C صغير سنعمل على:
#include & لوت؛ stdio. h & غ؛ __attribute__ ((نوينلين)) فواد فان (إنت إنت) إنت مين ()
يمكنك ملاحظة أننا استخدمنا سمة دول مجلس التعاون الخليجي لمنع المترجم من تضمين الوظيفة.
دول مجلس التعاون الخليجي والرموز.
عند تجميع برنامج، دول مجلس التعاون الخليجي (على سبيل المثال) يضيف رموز إلى ثنائي لمساعدة المطور أثناء التصحيح. هناك عدة أنواع من الرموز ولكن الهدف من هذه المقالة ليس شرحها.
على العكس من المعتقدات الشعبية، دول مجلس التعاون الخليجي يكتب الرموز إلى ملف الكائن حتى في وضع الإفراج (مع التبديل - O3). هذا هو السبب في أنه حتى مع ثنائي الإصدار، يمكنك القيام بذلك:
$ غك - O3 - m32 test. c.
قراءة الرموز من /home/felix/test/a. out. (لم يتم العثور على رموز تصحيح الأخطاء). فعله.
نقطة التوقف 1 في 0x8048453.
رموز الإدراج.
يمكننا استخدام الأمر نم لقائمة جميع الرموز في ثنائي لدينا:
08049f28 d _DYNAMIC.
08049ff4 d _GLOBAL_OFFSET_TABLE_.
0804853c R _IO_stdin_used.
08048470 T __libc_csu_init.
080483e0 t frame_dummy.
08048440 T الرئيسية.
الرموز والتصحيح.
مع المعلومات السابقة، غب يعرف حدود جميع الوظائف حتى نتمكن من طلب رمز التجميع لأي منها. على سبيل المثال بفضل نم نعلم أن هناك وظيفة ممتعة في التعليمات البرمجية، يمكننا أن نسأل رمز التجمع:
تفريغ رمز المجمع للمتعة وظيفة:
0x08048410: دفع٪ إب.
0x08048411: موف٪ إسب،٪ إب.
0x08048413: سوب $ 0x18،٪ إسب.
0x08048416: موف 0x8 (٪ إب)،٪ إيكس.
0x08048419: موفل $ 0x8048530،0x4 (٪ إسب)
0x08048421: موفل $ 0x1، (٪ إسب)
0x08048428: موف٪ إيكس، 0x8 (٪ إسب)
0x0804842c: كال 0x8048340.
تجاهل الرموز.
يمكن إزالة الرموز من ثنائي باستخدام الأمر قطاع:
$ غك - O3 - m32 test. c.
نانومتر: a. out: لا رموز.
لماذا تجريد قد تسأل؟ حسنا، الثنائية الناتجة أصغر مما يعني أنه يستخدم ذاكرة أقل، وبالتالي فإنه ربما ينفذ بشكل أسرع. وعند تطبيق هذه الاستراتيجية على نطاق المنظومة، من المحتمل أن تكون استجابة النظام أفضل. يمكنك التحقق من ذلك من قبل نفسك: استخدام نانومتر على / بن / *: لن تجد أي رموز.
المشكلة.
حسنا، لا يوجد المزيد من الرموز الآن، ما الذي يتغير عند استخدام غب؟
وظيفة "الرئيسية" غير محددة.
وظيفة "متعة" لم يتم تعريفها.
لا يمكننا إضافة نقطة توقف الآن، حتى على الوظيفة الرئيسية.
الحل.
تحديد نقطة الدخول.
لا يزال التصحيح ممكنا، ولكنه أكثر تعقيدا. أولا نحن بحاجة إلى عنوان الذاكرة من نقطة الدخول:
الرموز من "a. out".
ملف إيكسيك المحلي:
`a. out '، نوع الملف elf32-i386.
مع غب يمكننا إضافة نقطة توقف على عنوان الذاكرة:
(غب) b * 0x8048350.
نقطة التوقف 1 في 0x8048350.
بدء البرنامج: a. out.
نقطة 1، 0x08048350 في ؟؟ ()
تفكيك التعليمات البرمجية.
تمكنا من إضافة نقطة توقف على نقطة دخول لدينا ثنائي (وتوصلنا إلى نقطة التوقف)، ولكن نحن لا تزال تواجه بعض المشاكل مع الأوامر المفضلة لدينا:
لا تحتوي الدالة على عداد برنامج للإطار المحدد.
لا يمكن العثور على حدود وظيفة الحالية.
كما غب لا يعرف حدود وظائف، فإنه لا يعرف أي نطاق العنوان يجب تفكيكها.
ومرة أخرى، سنحتاج إلى استخدام أمر يعمل على مستوى أدنى.
يجب علينا استخدام الأمر فحص (x) على العنوان الذي أشار إليه سجل برنامج مكافحة، ونحن نطلب تفريغ من 14 تعليمات التجمع التالية:
=> 0x8048350: شور٪ إب،٪ إب.
0x8048352: بوب٪ إيسي.
0x8048353: موف٪ إسب،٪ إكس.
0x8048355: و $ 0xfffffff0،٪ إسب.
0x8048358: دفع٪ إيكس.
0x8048359: بوش٪ إسب.
0x804835a: بوش٪ إدكس.
0x804835b: دفع $ 0x80484e0.
0x8048360: دفع $ 0x8048470.
0x8048365: دفع٪ إكس.
0x8048366: دفع٪ إيسي.
0x8048367: دفع $ 0x8048440.
0x804836c: كال 0x8048330.
إبك تهيئة.
من خلال النظر في التعليمات البرمجية، قد تسأل نفسك: "أين الجحيم نحن ؟؟"
وقت التشغيل C يجب القيام ببعض التهيئة قبل استدعاء وظيفتنا الرئيسية الخاصة، يتم التعامل مع هذا من قبل الروتينية التهيئة __libc_start_main (التحقق من النموذج الأولي هنا).
قبل استدعاء هذا الروتين، يتم دفع الحجج على المكدس في ترتيب عكسي (بعد اتفاقية الدعوة كديكل). الوسيطة الأولى من __libc_start_main هي مؤشر إلى وظيفتنا الرئيسية، لذلك لدينا الآن عنوان الذاكرة المقابلة لدينا التعليمات البرمجية: 0x8048440. هذا هو ما وجدنا مع نانومتر في وقت سابق!
دعونا نضيف نقطة توقف على هذا العنوان، واستمر ونفصل الشفرة:
(غب) b * 0x8048440.
نقطة التوقف 2 في 0x8048440.
نقطة توقف 2، 0x08048440 في ؟؟ ()
=> 0x8048440: بوش٪ إب.
0x8048441: موف٪ إسب،٪ إب.
0x8048443: و $ 0xfffffff0،٪ إسب.
0x8048446: سوب $ 0x10،٪ إسب.
0x8048449: موفل $ 0x15، (٪ إسب)
0x8048450: اتصل 0x8048410.
0x8048455: شور٪ إيكس،٪ إيكس.
هذا يبدو وكأنه وظيفتنا الرئيسية، يتم وضع قيمة 21 (0x15) على المكدس ووظيفة (عنوان يتوافق مع متعة).
بعد ذلك، يتم مسح سجل إيكس لأن وظيفتنا الرئيسية ترجع 0.
أوامر إضافية.
خطوة إلى تعليمات التجميع التالية يمكنك استخدام الأمر ستيب.
يمكنك استخدام الطباعة وتعيينها مباشرة على السجلات:
(غب) سيت إيكس = 0x2a.
يمكنك أيضا تفريغ قيمة جميع السجلات:
(غب) معلومات السجلات.
إككس 0xffffd6e4 -10524.
إدكس 0xffffd674 -10636.
إبكس 0xf7fb8ff4 -134508556.
إسب 0xffffd64c 0xffffd64c.
إيب 0x8048440 0x8048440.
هذا كل شئ حتى الان!
التعليقات مغلقة.
المشاركات الاخيرة.
الاقسام.
كوبيرايت & كوبي؛ 2018 فيلكس أبيكاسيس | مدعوم من زبينش وورد.
x الأمر.
لعرض محتويات الذاكرة في عنوان معين باستخدام التنسيق المحدد.
المعلمات.
يتم دعم معدلات الحجم التالية:
b - بايت h - هالفورد (قيمة 16 بت) w - كلمة (قيمة 32 بت) g - كلمة عملاقة (قيمة 64 بت) لينغث يحدد عدد العناصر التي سيتم عرضها بواسطة هذا الأمر.
سنعرض الأمر x باستخدام برنامج أساسي يحدد صفيف بايت على المكدس:
شار تيستاراي [] = "0123456789ABCDEF"؛
سنستخدم الآن الأمر x لعرض محتويات الذاكرة التي تحتلها مجموعة تستاراي في أشكال مختلفة. ونحن سوف تظهر أيضا كيفية استخدام الأمر x لتفكيك التعليمات التي أشار إليها برنامج مكافحة الزائفة التسجيل ($ بيسي).
نقطة التوقف المؤقتة 1 على 0x8048446: فيل test. cpp، السطر 2.
بدء البرنامج: / الوطن / بازيس / اختبار.
3 شار تيستاراي [] = "0123456789ABCDEF"؛
0xbfffef7b: 48 '0'
(غب) x / 5c تيستراي.
0xbfffef7b: 48 '0' 49 '1' 50 '2' 51 '3' 52 '4'
0xbfffef80: 53 '5' 54 '6'
(غب) x / وس تستاراي.
(غب) x / 2hx تستاراي.
0xbfffef7b: 0x3130 0x3332.
(غب) x / غ تيستاراي.
(غب) x / 5bx تستاراي.
0xbfffef7b: 0x30 0x31 0x32 0x33 0x34.
0x804847c & لوت؛ مين () + 63 & غ ؛: موف 0x1c (٪ إسب)،٪ إدكس.
0x8048480 & لوت؛ مين () + 67 & غ ؛: شور٪ غس: 0x14،٪ إدكس.
0x8048487 & لوت؛ مين () + 74 & غ ؛: جي 0x804848e & لوت؛ مين () + 81 & غ؛
0x8048489 & لوت؛ مين () + 76 & غ ؛: كال 0x8048310 & لوت؛ __ stack_chk_fail @ بلت & غ؛
التوافق مع فيسوالغدب.
يمكنك استخدام الأمر x عادة باستخدام إطار جلسة غب في فيسوال ستوديو.
No comments:
Post a Comment