Friday 16 March 2018

غب الخيار الثنائي


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

فيليكس أبيكاسيس.
المشاريع والتجارب & # 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.
هذا كل شئ حتى الان!
التعليقات مغلقة.
المشاركات الاخيرة.
الاقسام.
كوبيرايت & كوبي؛ 2017 فيلكس أبيكاسيس | مدعوم من زبينش وورد.

لينكس العنان.
هذا بلوق يعطي لينكس معلومات محددة مثل الشبكات، التصحيح لينكس الداخلية.
منشورات شائعة.
الأربعاء، 24 نوفمبر 2018.
تصحيح الأساسية باستخدام غب.
19 تعليقات:
بدلا من كريدومب غبانغ، لماذا لا نستخدم الأمر إرفاق في غب للوصول الى غبانهانغ عندما لا يزال قيد التشغيل؟
يمكنك الحق في استخدام حتى غب نعلق، ولكن على الميدان (الإعداد العملاء) قد لا يكون لديك ترف لإرفاق غب لمعالجة والحد الأقصى يمكنك أن تطلب لبعض تنفيذ الأوامر (كوريدومب) وسجلات (ملف الأساسية). كوريدومب كما يأتي مفيد في سيناريوهات حيث لديك بعض غبكلينت معقدة وإعداد غبسيرفر وتريد تجنب الألم من إعداده للتصحيح الحية.
مادة ممتازة يوسف. . أنا مبتدئ في التصحيح مقالب الأساسية. أريد تجربة برنامج المثال gdb_core_app. c و gdb_hang_app. c. يقول الرابط: & كوت؛ انتهت صلاحية النطاق & كوت؛ .
شكرا جزيلا. كان من مساعدة كبيرة.
هذا هو مادة كبيرة على توليد وتصحيح مقالب الأساسية. يمكنك شرح تأثير التحسين (ككس العلم -02) على توليد الأساسية؟
يعني، إذا كان لدي تفريغ الأساسية ولدت من ثنائي (في الموقع) الذي بني مع العلم -02، سوف تفريغ الأساسية تكون قادرة على تعطيني رقم خط دقيق من خط إشكالي (إذا كان لاغية ريف هي المشكلة)؟
روابط البرنامج لا تعمل يمكنك تحميل ملف تفريغ تحطم الطائرة.
غب ل بتريد تصحيح.
كيف يمكننا تصويب ملف تفريغ الأساسية ولدت في لايف؟
شكرا جزيلا. إنها مقالة لطيفة.
هذا هو أرتييييييييييي لطيفة جدا.
مادة ممتازة يوسف. . أنا مبتدئ في التصحيح مقالب الأساسية. أريد تجربة نموذج البرنامج: gdb_core_app. c و gdb_hang_app. c. يقول الرابط: & كوت؛ انتهت صلاحية النطاق & كوت؛ .
مادة لطيفة جدا يوسف!
أنا حاليا العمل على تطبيق لينكس، وهو عملية واحدة ولكن المواضيع متعددة.
هل يمكن أن تخبرني لماذا أنا لا تحصل على أسماء الوظائف (أحصل على ؟؟ في تتبع الدعوة) أثناء تتبع المكالمة (بت) مرة واحدة تعطل طلبي، على الرغم من أنني قد جمعت باستخدام الخيار - g. كيفية تصحيح هذه الكبايات الأساسية؟
تحقق من ذلك إذا كان يساعد: أننوينرود / رتفم / غبتوت / gdbadvanced. html # ميموري.
مادة جيدة جدا. شكر.
شكر. مادة لطيفة جدا، يمكن أن يكون أفضل لتحليل مع نفس شفرة المصدر.
لم أكن أعرف أن تصحيح الأساسية باستخدام غب كان مثل هذا شيء سهل، وأنا يتصور دائما أن تكون صعبة للغاية وصعبة. هذا هو وظيفة مثيرة جدا للاهتمام، وقبعة صفحة لديها معلومات مهنية ومفيدة للغاية. أعتقد أنني سوف يكون ارتباطك لمزيد من المعلومات. إذا كانت خدمات كتابة الأشباح هي ما تبحث عنه، فابحث عن بعض الوقت للتحقق من الرابط.

الصليب التصحيح على لينكس والنبيذ.
غب، مصحح غنو هو مصحح الأخطاء القياسية لنظام البرمجيات غنو. يمكنك تصحيح ثنائي المترجمة على مينغو الصليب تجميع بيئة في لينكس، وذلك باستخدام غب بنيت للبيئة الصليب. ومع ذلك، تحتاج ليس فقط عبر غب ولكن أيضا غبسيرفر لتصحيح بعيد، منذ عبر غب على لينكس لا يمكن تنفيذ Win32 ثنائي.
تجميع مع الخيار - g.
من أجل تصحيح التطبيق الخاص بك باستخدام غب، تحتاج إلى إضافة الخيار - g عند تجميع وربط التطبيق. إذا كنت مهتما بخيار التصحيح بالتفصيل، يرجى الرجوع إلى دليل دول مجلس التعاون الخليجي) 4.3.2 (.
التطبيق المبتكر مع الخيار - g.
التصحيح عن بعد باستخدام النبيذ.
عادة في التصحيح عن بعد، نسخة من التطبيق هو أن يتم تشغيلها مع غبسيرفر على منصة الهدف، وأيضا التطبيق هو أن يتم تحميلها في غب على محطة العمل التنمية. في حالة فيدورا مينغو الصليب تجميع البيئة، بدلا من منصة الهدف الفعلي، مايكروسوفت ويندوز، النبيذ على لينكس يمكن استخدامها دون استخدام نسخة من التطبيق في التصحيح، إذا النبيذ متاح على النظام الخاص بك.
الشكل: تصحيح عن بعد باستخدام غبزيرفر.
على النبيذ كمنصة الهدف، وإطلاق التطبيق مع غبسيرفر، في حين تحديد المضيف والمنفذ للاستماع إلى اتصال تكب واردة:
ملاحظة: يتم استخدام المنفذ 60000 كمثال.
الشكل: إطلاق sample. exe مع غبسيرفر (النبيذ)
على وحدة تحكم لينكس، كما إطلاق التطبيق مع عبر هدف غب:
في وحدة تحكم غب، اكتب:
الشكل: إطلاق sample. exe مع الصليب غب (لينكس)
الشكل: بدء التصحيح في غبسيرفر (النبيذ)
يتم إيقاف العملية في الوظيفة الرئيسية، وبعد ذلك، يمكنك تصحيح البرنامج مع غب البعيد.
الشكل: تعيين نقطة كسر في الوظيفة الرئيسية (لينكس)
غنو دد، مصحح عرض البيانات هو الواجهة الرسومية الأمامية لمصححات سطر الأوامر ل غب وغيرها من المصححات. إذا كنت تفضل استخدام واجهة المستخدم الرسومية بدلا من تشغيل سطر الأوامر في التصحيح، دد سيكون أداة جيدة بالنسبة لك.
لبدء دد مع مصحح عبر مينغو، إضافة خيار --debugger لتحديد اسم مصحح الأخطاء مينغو كما هو موضح في ما يلي:
بدء دد مع i686-بيسي-mingw32-غب.
بعد بدء تشغيل دد، فتح ملف التطبيق لتصحيح على دد عن طريق اختيار القوائم "F إيل" -> "O برنامج القلم.".
الشكل: دد مع i686-بيسي-mingw32-غب.
على النبيذ كمنصة الهدف، وإطلاق التطبيق مع غبسيرفر بنفس الطريقة كما هو موضح أعلاه.
الشكل: إطلاق sample. exe مع غبسيرفر (النبيذ)
في إطار الأمر غب على دد، تعيين الهدف البعيد.
الشكل: تعيين الهدف البعيد على دد.
أيضا، تعيين نقطة كسر في وظيفة رئيسية ولا تستمر. بالطبع، يمكنك التعامل مع نفس العملية على واجهة المستخدم الرسومية.

خيار ثنائي غب
غب يسمح لك لوضع برنامج التصحيح المعلومات في ملف منفصل عن التنفيذ نفسه، بطريقة تسمح غب لإيجاد وتحميل المعلومات التصحيح تلقائيا. نظرا لأن معلومات تصحيح الأخطاء يمكن أن تكون كبيرة جدا & مداش؛ وأحيانا أكبر من الرمز القابل للتنفيذ نفسه & مداش؛ حيث تقوم بعض الأنظمة بتوزيع معلومات تصحيح الأخطاء على ملفاتها التنفيذية في ملفات منفصلة، ​​والتي يمكن للمستخدمين تثبيتها فقط عندما يحتاجون إلى تصحيح المشكلة.
يدعم غب طريقتين لتحديد ملف معلومات تصحيح الأخطاء المنفصل:
يحتوي الملف القابل للتنفيذ على ارتباط تصحيح يحدد اسم ملف معلومات تصحيح الأخطاء المنفصل. اسم ملف التصحيح المنفصل عادة ما يكون قابل للتنفيذ. debug، حيث يكون القابل للتنفيذ هو اسم الملف القابل للتنفيذ المقابل بدون الدلائل الرائدة (على سبيل المثال، ls. debug ل / أسر / بن / لس). بالإضافة إلى ذلك، يحدد الارتباط التصحيح تدقيق المجموع 32-بت التكرار دوري (كرك) الاختباري لملف التصحيح، الذي يستخدم غب للتحقق من أن الملف القابل للتنفيذ و ديبوغ جاء من نفس البناء. يحتوي الملف القابل للتنفيذ على معرف بناء، سلسلة بت فريدة موجودة أيضا في ملف معلومات تصحيح الأخطاء المقابل. (يتم دعم هذا فقط على بعض أنظمة التشغيل، عند استخدام تنسيقات ملف إلف أو بي للملفات الثنائية و بينوتيلز غنو.) لمزيد من التفاصيل حول هذه الميزة، راجع وصف الخيار - build-إد سطر الأوامر في كوماند خيارات الخط في غنو لينكر. لم يتم تحديد اسم ملف تصحيح الأخطاء بشكل صريح بواسطة معرف الإنشاء، ولكن يمكن حسابه من معرف الإنشاء، انظر أدناه.
اعتمادا على طريقة تحديد ملف معلومات تصحيح الأخطاء، يستخدم غب طريقتين مختلفتين للبحث عن ملف تصحيح الأخطاء:
بالنسبة إلى & لدكو؛ رابط التصحيح & رديقو؛ الأسلوب غب يبحث عن الملف المسمى في دليل الملف القابل للتنفيذ ثم في دليل فرعي من هذا الدليل اسمه. debug وأخيرا تحت كل واحد من الدلائل التصحيح العمومية في دليل فرعي اسمه متطابقة الدلائل الرائدة من اسم الملف المطلق القابل للتنفيذ. بالنسبة إلى & لدكو؛ معرف البناء & رديقو؛ ، يبدو غب في الدليل الفرعي. build-إد لكل من الدلائل التصحيح العمومية لملف اسمه نن / نن. debug حيث ن هي أحرف سداسية عشرية الأولى من سلسلة البت معرف إد و نن باقي سلسلة البت. (سلاسل إد بناء الحقيقي هي 32 أو أكثر من الأحرف عرافة، وليس 10.)
لذلك، على سبيل المثال، لنفترض أنك تطلب من غب تصحيح / أسر / بن / لس، الذي يحتوي على ارتباط تصحيح يحدد الملف ls. debug، ومعرف إنشاء قيمته في هيكس abcdef1234. إذا كانت قائمة الدلائل التصحيح العالمية تتضمن / أسر / ليب / ديبوغ، فسوف يبحث غب عن ملفات معلومات تصحيح الأخطاء التالية بالترتيب المشار إليه:
أدلة معلومات تصحيح الأخطاء العالمية الافتراضية إلى ما يتم تعيينه من قبل خيار تكوين غب --with-سيبارات-ديبوغ-دير. أثناء تشغيل غب يمكنك أيضا تعيين الدلائل المعلومات التصحيح العالمية، وعرض قائمة غب يستخدم حاليا.
تعيين الدلائل ديبوغ-فيل-ديركتوري.
تعيين الدلائل التي غب يبحث عن ملفات تصحيح الأخطاء منفصلة إلى الدليل. يمكن تعيين مكونات مسار متعددة لتوصيلها بواسطة فاصل المسير.
عرض الدلائل بحث غب عن ملفات معلومات تصحيح الأخطاء منفصلة.
وصلة تصحيح الأخطاء هي جزء خاص من الملف القابل للتنفيذ المسمى. gnu_debuglink. يجب أن يحتوي القسم على:
اسم الملف، مع إزالة أي مكونات الدليل الرائدة، تليها بايت صفر، صفر إلى ثلاثة بايت من الحشو، حسب الحاجة للوصول إلى الحدود الأربعة بايت المقبل داخل القسم، المجموع الاختباري كرك أربعة بايت، المخزنة في نفس إنديانيس تستخدم للملف القابل للتنفيذ نفسه. يتم حساب المجموع الاختباري على المحتويات الكاملة لملف معلومات التصحيح بواسطة الدالة الواردة أدناه، ويمرر الصفر كوسيطة كرك.
أي تنسيق ملف قابل للتنفيذ يمكن أن تحمل وصلة التصحيح، طالما أنها يمكن أن تحتوي على قسم اسمه. gnu_debuglink مع محتويات المذكورة أعلاه.
معرف البناء هو قسم خاص في الملف القابل للتنفيذ (وفي ملفات إلف الثنائية الأخرى التي قد تنظر غب). غالبا ما يدعى هذا القسم. note. gnu. build-إد، ولكن هذا الاسم ليس إلزاميا. أنه يحتوي على تعريف فريد للملفات بنيت و [مدش]؛ يبقى معرف نفسه عبر بناء متعددة من نفس شجرة البناء. تنتج الخوارزمية الافتراضية SHA1 160 بت (40 حرفا سداسي عشري) لمحتوى سلسلة معرف الإنشاء. نفس القسم مع قيمة متطابقة موجودة في الثنائية بنيت الأصلي مع الرموز، في متغير تجريده، وفي ملف معلومات التصحيح منفصل.
يجب أن يكون ملف معلومات التصحيح نفسه قابل للتنفيذ العادي، يحتوي على مجموعة كاملة من رموز الروابط والأقسام ومعلومات تصحيح الأخطاء. يجب أن تحتوي أقسام ملف معلومات تصحيح الأخطاء على نفس الأسماء والعناوين والأحجام كملف أصلي، ولكنها لا تحتاج إلى أن تحتوي على أية بيانات & مداش؛ مثل قسم. bss في ملف عادي قابل للتنفيذ.
وتشمل غنو الأدوات المساعدة الثنائية (بينوتيلز) حزمة & لسو؛ أوبجكوبي & [رسقوو]؛ الأداة المساعدة التي يمكن أن تنتج أزواج ملف المعلومات القابلة للتنفيذ / التصحيح فصل باستخدام الأوامر التالية:
هذه الأوامر إزالة معلومات التصحيح من الملف القابل للتنفيذ فو ووضعه في ملف foo. debug. يمكنك استخدام الطريقة الأولى أو الثانية أو كليهما لربط الملفين:
أسلوب الارتباط التصحيح يحتاج الأمر الإضافي التالي أيضا ترك وراء الارتباط التصحيح في فو:
أولريش دريبر و s إلفوتيلز الحزمة، بدءا من الإصدار 0.53، يحتوي على نسخة من الأمر قطاع مثل هذا الأمر شريط فو - f foo. debug لديه نفس الوظائف مثل الأوامر أوبجكوبي اثنين و لن - s الأمر أعلاه، معا.
كرك المستخدمة في. gnu_debuglink هي كرك-32 المعرفة في إيي 802.3 باستخدام متعدد الحدود:
وتحسب الوظيفة البايتة في كل مرة، مع أخذ البتة الأقل دلالة من كل بايتة أولا. يتم استخدام نمط 0xffffffff الأولي، لضمان الأصفار الرائدة تؤثر على كرك والنتيجة النهائية مقلوب لضمان الأصفار زائدة تؤثر أيضا على اتفاقية حقوق الطفل.
ملاحظة: هذا هو نفسه متعدد الحدود كرك كما هو مستخدم في التعامل مع حزمة كريك بروتوكول المسلسل البعيد (انظر حزمة كرك). ولكن في حالة البروتوكول التسلسلي عن بعد، تحسب كرك على البتة الأكثر دلالة أولا، ولا تكون النتيجة مقلوبة، لذلك لا تؤثر الأصفار المتتالية على قيمة كرك.
لإكمال الوصف، نعرض أدناه رمز الدالة التي تنتج كرك المستخدمة في. gnu_debuglink. عكس الوسيطة كرك المقدمة في البداية يعني أن المكالمة الأولية لهذه الوظيفة تمر في الصفر ستبدأ في حساب كرك باستخدام 0xffffffff.
لا ينطبق هذا الحساب على & لدكو؛ معرف البناء & رديقو؛ طريقة.

No comments:

Post a Comment