عربيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

strace64 - عبر الإنترنت في السحابة

قم بتشغيل strace64 في مزود الاستضافة المجانية OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر strace64 الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


strace - تتبع مكالمات وإشارات النظام

موجز


عنيد [-CdffhikqrtttTvVxxy] [-In] [-bممتاز] [-eعلى سبيل المثال] ... [-aعمود]
[-oملف] [-sسترسيز] [-Pمسار] ... -pمعرف المنتج... / [-D] [-Eفار[=فال]] ...
[-uاسم المستخدم] أمر [وسائط]

عنيد -c[df] [-In] [-bممتاز] [-eعلى سبيل المثال] ... [-Oفوق] [-Sصنف حسب]
-pمعرف المنتج... / [-D] [-Eفار[=فال]] ... [-uاسم المستخدم] أمر [وسائط]

الوصف


في أبسط الحالات عنيد يدير المحدد أمر حتى يخرج.
يقوم باعتراض وتسجيل مكالمات النظام التي يتم استدعاؤها بواسطة a
العملية والإشارات التي تتلقاها العملية. اسم ال
تتم طباعة كل استدعاء نظام ووسيطاته وقيمة الإرجاع الخاصة به
خطأ معياري أو إلى الملف المحدد بامتداد -o الخيار.

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

يحتوي كل سطر في التتبع على اسم استدعاء النظام ، متبوعًا به
الوسيطات بين قوسين وقيمتها المرجعة. مثال من
stracing الأمر "cat / dev / null" هو:

مفتوح ("/ dev / null"، O_RDONLY) = 3

تحتوي الأخطاء (عادةً ما تكون قيمة الإرجاع -1) على رمز الخطأ والخطأ
سلسلة ملحقة.

open ("/ foo / bar"، O_RDONLY) = -1 ENOENT (لا يوجد مثل هذا الملف أو الدليل)

يتم طباعة الإشارات كرمز إشارة وفك تشفير بنية siginfo. ان
مقتطفات من مطاردة ومقاطعة الأمر "سليب 666" هو:

sigsuspend ([]
--- SIGINT {si_signo = SIGINT، si_code = SI_USER، si_pid = ...} ---
+++ قتلت بواسطة SIGINT +++

إذا تم تنفيذ مكالمة نظام وفي الوقت نفسه يتم إجراء مكالمة أخرى
دعا من موضوع / عملية مختلفة بعد ذلك عنيد سيحاول الحفاظ عليه
ترتيب تلك الأحداث ووضع علامة على المكالمة الجارية على أنها
لم تنته. عند عودة المكالمة سيتم تمييزها كـ استأنف.

[pid 28772] حدد (4 ، [3] ، NULL ، NULL ، NULL
[pid 28779] clock_gettime (CLOCK_REALTIME ، {1130322148 ، 939977000}) = 0
[pid 28772] <... اختر استئناف>) = 1 (في [3])

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

قراءة (0، 0x7ffff72cf5cf، 1) =؟ ERESTARTSYS (لإعادة التشغيل)
- سيغالرم ... -
rt_sigreturn(0س) = 0
قراءة (0 ، "، 1) = 0

الحجج مطبوعة في شكل رمزي بشغف. هذا المثال
يُظهر الصدفة تؤدي إعادة توجيه الإخراج ">> xyzzy":

مفتوح ("xyzzy"، O_WRONLY | O_APPEND | O_CREAT، 0666) = 3

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

يتم إلغاء الإشارة إلى مؤشرات البنية ويتم عرض الأعضاء على شكل
ملائم. في جميع الحالات ، يتم تنسيق الحجج في معظم C-like
الموضة ممكن. على سبيل المثال ، جوهر الأمر "ls -l
/ dev / null "تم التقاطه على النحو التالي:

lstat ("/ dev / null"، {st_mode = S_IFCHR | 0666، st_rdev = makedev (1، 3)، ...}) = 0

لاحظ كيف تم إلغاء الإشارة إلى وسيطة "Struct stat" وكيف يتم تحديد كل منها
يتم عرض العضو بشكل رمزي. على وجه الخصوص ، لاحظ كيف أن
يتم فك ترميز عضو st_mode بعناية إلى حرف بت-OR من رمزي و
القيم الرقمية. لاحظ أيضًا في هذا المثال أن الوسيطة الأولى لـ
lstat هو إدخال إلى استدعاء النظام والوسيطة الثانية هي
انتاج. منذ لا يتم تعديل وسيطات الإخراج إذا كان استدعاء النظام
فشل ، قد لا يتم دائمًا إلغاء الإشارة إلى الحجج. على سبيل المثال ، إعادة المحاولة
ينتج المثال "ls -l" مع ملف غير موجود ما يلي
على الانترنت:

lstat ("/ foo / bar" ، 0xb004) = -1 ENOENT (لا يوجد مثل هذا الملف أو الدليل)

في هذه الحالة ، يكون ضوء الشرفة قيد التشغيل ولكن لا أحد في المنزل.

يتم إلغاء الإشارة إلى مؤشرات الأحرف وطباعتها كسلاسل C. عدم-
عادةً ما يتم تمثيل أحرف الطباعة في السلاسل بواسطة C العادي
رموز الهروب. فقط الأول سترسيز (32 افتراضيًا) بايت من السلاسل
تتم طباعتها السلاسل الأطول لها علامة حذف ملحقة بعد
الاقتباس الختامي. هنا سطر من "ls -l" حيث com.getpwuid مكتبة
الروتين يقرأ ملف كلمة المرور:

قراءة (3، "root :: 0: 0: System Administrator: /" ...، 1024) = 422

بينما يتم شرح الهياكل باستخدام الأقواس المتعرجة والمؤشرات البسيطة و
تتم طباعة المصفوفات باستخدام أقواس مربعة مع فصل الفاصلات
عناصر. هنا مثال من الأمر "id" على نظام به
هويات المجموعة التكميلية:

getgroups (32، [100، 0]) = 2

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

قناع sigprocmask (SIG_BLOCK ، [CHLD TTOU] ، []) = 0

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

قناع sigprocmask (SIG_UNBLOCK، ~ []، NULL) = 0

هنا تمثل الوسيطة الثانية المجموعة الكاملة لجميع الإشارات.

OPTIONS


-c عد الوقت والمكالمات والأخطاء لكل مكالمة نظام
والإبلاغ عن ملخص عن الخروج من البرنامج. على Linux ،
يحاول هذا إظهار وقت النظام (الوقت المستغرق لوحدة المعالجة المركزية
تعمل في النواة) بشكل مستقل عن ساعة الحائط
زمن. إذا -c يستخدم مع -f or -F (أدناه) ، فقط
يتم الاحتفاظ بالمجاميع الإجمالية لجميع العمليات المتتبعة.

-C اعجاب -c ولكن أيضًا طباعة الإخراج العادي أثناء
العمليات قيد التشغيل.

-D قم بتشغيل عملية التتبع كحفيد منفصل ، وليس كحفيد منفصل
والد الأثر. هذا يقلل من المرئي
تأثير عنيد بالحفاظ على التتبع مباشرة
تابع لعملية الاستدعاء.

-d إظهار بعض إخراج التصحيح من عنيد نفسها على
خطأ تقليدي.

-f تتبع العمليات الفرعية كما تم إنشاؤها بواسطة
العمليات المتعقبة حاليًا نتيجة لـ
شوكة(2) فورك(2) و استنساخ(2) استدعاءات النظام. ملحوظة
أن -p PID -f سيتم إرفاق كافة خيوط العملية
PID إذا كان متعدد الخيوط ، وليس فقط مع
thread_id = PID.

إذا كان -o اسم الملف الخيار ساري المفعول ، كل
تتم كتابة تتبع العمليات ل اسم الملف أين pid
هو معرف العملية الرقمي لكل عملية. هذا هو
غير متوافق مع -c، نظرًا لعدم احتساب أي عملية لكل عملية
يتم الاحتفاظ بها.

-F أصبح هذا الخيار الآن قديمًا ولديه نفس الشيء
وظائف مثل -f.

-h اطبع ملخص التعليمات.

-i اطبع مؤشر التعليمات في وقت
استدعاء النظام.

-k طباعة تتبع مكدس التنفيذ للمتابعة
العمليات بعد كل استدعاء للنظام (تجريبي).
هذا الخيار متاح فقط إذا عنيد مبني
مع libunwind.

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

-Qq إذا تم إعطاؤه مرتين ، فقم بإيقاف الرسائل المتعلقة بإنهاء العملية
الحالة.

-r اطبع طابعًا زمنيًا نسبيًا عند الدخول إلى كل نظام
مكالمة. هذا يسجل فارق التوقيت بين
بداية مكالمات النظام المتتالية.

-t بادئة كل سطر من التتبع بالوقت من اليوم.

إذا تم إعطاؤه مرتين ، فسيشمل الوقت المطبوع
ميكروثانية.

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

-T إظهار الوقت المنقضي في مكالمات النظام. هذا يسجل
فارق التوقيت بين البداية و
نهاية كل مكالمة نظام.

-w لخص فارق التوقيت بين البداية
ونهاية كل مكالمة نظام. الافتراضي هو
تلخيص وقت النظام.

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

-V اطبع رقم إصدار عنيد.

-x اطبع كل السلاسل غير ASCII بسلسلة سداسية عشرية
تنسيق.

-xx اطبع كل السلاسل بتنسيق سلسلة سداسي عشري.

-y مسارات الطباعة المرتبطة بواصف الملف
الحجج.

طباعة ip: أزواج المنافذ المرتبطة بملف المقبس
الواصفات.

-a عمود قم بمحاذاة قيم الإرجاع في عمود معين (افتراضي
العمود 40).

-b تعليق إذا تم الوصول إلى syscall المحدد ، فافصله عن التتبع
معالجة. حاليا فقط ممتاز syscall هو
أيد. هذا الخيار مفيد إذا كنت تريد ذلك
تتبع عملية متعددة الخيوط وبالتالي تتطلب
-f ، ولكن لا تريد تتبع (من المحتمل جدًا أن يكون
معقدة) الأطفال.

-e على سبيل المثال تعبير مؤهل يقوم بتعديل الأحداث
لتتبعها أو كيفية تتبعها. شكل ملف
التعبير هو:

[مؤهل=][!]value1[,value2] ...

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

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

-e تتبع=طقم
تتبع فقط المجموعة المحددة من استدعاءات النظام. ال
-c الخيار مفيد لتحديد أي نظام
قد يكون من المفيد تتبع المكالمات. على سبيل المثال،
تتبع=افتح ، أغلق ، اقرأ ، اكتب يعني أن تتبع فقط
تلك المكالمات النظام الأربعة. كن حذرا عند صنع
استنتاجات حول حدود المستخدم / kernel إذا كان ملف
يتم مراقبة مجموعة فرعية من مكالمات النظام. ال
الافتراضي هو تتبع=من جميع.

-e تتبع=ملف
تتبع جميع استدعاءات النظام التي تأخذ اسم ملف كملف
جدال. يمكنك التفكير في هذا على أنه اختصار
For -e تتبع=جاكيت ,القانون الأساسي,شمود,فك ارتباط،... الذي
من المفيد رؤية ملفات العملية
الرجوع. علاوة على ذلك ، باستخدام الاختصار
سيضمن لك عدم نسيان ذلك عن طريق الخطأ
تشمل مكالمة مثل lstat في القائمة. بتشيا
هل نسيت ذلك.

-e تتبع=عملية المعالجة
تتبع جميع استدعاءات النظام التي تنطوي على عملية
إدارة. هذا مفيد لمشاهدة الشوكة ،
انتظر ، وقم بتنفيذ خطوات العملية.

-e تتبع=شبكة
تتبع جميع مكالمات النظام ذات الصلة بالشبكة.

-e تتبع=بسيطة
تتبع جميع مكالمات النظام المتعلقة بالإشارة.

-e تتبع=التصنيف الدولي للبراءات
تتبع جميع مكالمات النظام ذات الصلة بـ IPC.

-e تتبع=تنازلي
تتبع جميع استدعاءات النظام ذات الصلة بواصف الملفات.

-e تتبع=ذاكرة
تتبع جميع مكالمات النظام ذات الصلة بتعيين الذاكرة.

-e مختصر=طقم
اختصر الإخراج من طباعة كل عضو من
هياكل كبيرة. الافتراضي هو مختصر=من جميع.
-v الخيار له تأثير مختصر=لا شيء.

-e مطنب=طقم
هياكل Dereference لمجموعة محددة من
مكالمات النظام. الافتراضي هو مطنب=من جميع.

-e الخام=طقم طباعة الوسائط الأولية غير المشفرة للمجموعة المحددة
من مكالمات النظام. هذا الخيار له تأثير
تسبب في طباعة جميع الوسائط بالنظام الست عشري.
هذا مفيد في الغالب إذا كنت لا تثق في
فك التشفير أو تحتاج إلى معرفة العدد الفعلي
قيمة الحجة.

-e بسيطة=طقم
تتبع فقط مجموعة فرعية محددة من الإشارات. ال
الافتراضي هو بسيطة=من جميع. على سبيل المثال، بسيطة =! سيجيو
(أو بسيطة=!io) يتسبب في عدم ظهور إشارات SIGIO
تتبع.

-e اقرأ=طقم قم بإجراء تفريغ سداسي عشري كامل و ASCII لجميع ملفات
قراءة البيانات من واصفات الملفات المدرجة في ملف
مجموعة محددة. على سبيل المثال ، لمشاهدة كل المدخلات
النشاط على واصفات الملفات 3 و 5 تستخدم
-e اقرأ=3,5. لاحظ أن هذا مستقل عن
تتبع العادي لل اقرأ(2) استدعاء النظام وهو
يتحكم فيها الخيار -e تتبع=اقرأ.

-e اكتب=طقم
قم بإجراء تفريغ سداسي عشري كامل و ASCII لجميع ملفات
البيانات المكتوبة لواصفات الملفات المدرجة في ملف
مجموعة محددة. على سبيل المثال ، لمشاهدة كل الإخراج
النشاط على واصفات الملفات 3 و 5 تستخدم
-e اكتب=3,5. لاحظ أن هذا مستقل عن
تتبع العادي اكتب(2) استدعاء النظام الذي
يتحكم فيه الخيار -e تتبع=اكتب.

-I متقطع
عندما يمكن مقاطعة الدعامة بواسطة إشارات (مثل
الضغط على ^ C). 1: لا توجد إشارات محظورة ؛ 2: قاتل
يتم حظر الإشارات أثناء فك syscall
(إفتراضي)؛ 3: يتم دائمًا حظر الإشارات القاتلة
(افتراضي إذا "-o FILE PROG") ؛ 4: إشارات قاتلة و
يتم دائمًا حظر SIGTSTP (^ Z) (من المفيد إنشاء ملفات
strace -o FILE PROG لا تتوقف عند ^ Z).

-o اسم الملف اكتب تتبع الإخراج إلى الملف اسم الملف بدلا
من ستدير. يستخدم اسم الملف if .
إذا كانت الحجة تبدأ بـ "|" أو مع '!' ثم
يتم التعامل مع بقية الحجة كأمر وكل شيء
يتم توجيه الإخراج إليه. هذا مناسب ل
توصيل إخراج التصحيح إلى برنامج بدون
التأثير على عمليات إعادة توجيه البرامج المنفذة.

-O فوق قم بتعيين الحمل لتتبع مكالمات النظام إلى
فوق ميكروثانية. هذا مفيد ل
تجاوز الاستدلال الافتراضي لتخمين كيف
يتم قضاء الكثير من الوقت في مجرد القياس عند التوقيت
مكالمات النظام باستخدام -c اختيار. دقة
يمكن قياس مجريات الأمور من خلال توقيت معين
تشغيل البرنامج بدون تتبع (باستخدام الوقت (1)) و
مقارنة وقت استدعاء النظام المتراكم بـ
إجمالي الناتج باستخدام -c.

-p معرف المنتج إرفاق العملية مع معرف العملية معرف المنتج و
بدء البحث عن المفقودين. قد يتم إنهاء التتبع في أي
الوقت عن طريق إشارة مقاطعة لوحة المفاتيح (CTRL-C).
عنيد سوف تستجيب بفصل نفسها عن
تتبع عملية (عمليات) تركها (لهم) للمتابعة
ادارة. عديد -p يمكن استخدام الخيارات لإرفاق
للعديد من العمليات. -p بناء جملة "pidof PROG" هو
أيد.

-P مسار تتبع فقط وصول مكالمات النظام مسار. قد يؤدي إجراء -P
يمكن استخدام الخيارات لتحديد عدة مسارات.

-s سترسيز حدد الحد الأقصى لحجم السلسلة المطلوب طباعتها (ملف
الافتراضي هو 32). لاحظ أن أسماء الملفات ليست كذلك
تعتبر سلاسل ويتم طباعتها دائمًا بالكامل.

-S صنف حسب قم بفرز إخراج الرسم البياني المطبوع بواسطة ملف -c
الخيار حسب المعيار المحدد. القيم القانونية
الوقت , المكالمات, الاسمو لا شى (الافتراضي هو الوقت ).

-u اسم المستخدم قم بتشغيل الأمر باستخدام معرف المستخدم ومعرف المجموعة و
المجموعات التكميلية من اسم المستخدم. هذا الخيار هو
مفيد فقط عند التشغيل كجذر ويمكّن
التنفيذ الصحيح لثنائيات setuid و / أو setgid.
ما لم يتم استخدام هذا الخيار setuid و setgid
يتم تنفيذ البرامج دون امتيازات فعالة.

-E فار=فال قم بتشغيل الأمر باستخدام فار=فال في قائمة البيئة
المتغيرات.

-E فار حذف فار من قائمة البيئة الموروثة
المتغيرات قبل تمريرها إلى الأمر.

DIAGNOSTICS


متى أمر مخارج عنيد المخارج بنفس حالة الخروج. لو
أمر تم إنهاؤه بواسطة إشارة ، عنيد ينهي نفسه بـ
نفس الإشارة ، بحيث عنيد يمكن استخدامها كعملية التفاف
شفافة لاستدعاء عملية الوالدين. لاحظ أن الوالد-
علاقة الطفل (إشارة إيقاف الإخطارات ، قيمة getppid () ،
الخ) بين عملية التتبع وأصلها لا يتم حفظها
ما لم -D .

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

سيتويد تركيب


If عنيد يتم تثبيت setuid على الجذر ثم المستخدم المستدعي
سيتمكن من إرفاق وتتبع العمليات التي يمتلكها أي مستخدم.
بالإضافة إلى ذلك ، سيتم تنفيذ برامج setuid و setgid و
تتبع الامتيازات الفعالة الصحيحة. منذ المستخدمين فقط
موثوق به مع امتيازات الجذر الكاملة يجب أن يُسمح له بالقيام بذلك
الأشياء ، فمن المنطقي فقط التثبيت عنيد كما setuid إلى الجذر
عندما يقتصر المستخدمون الذين يمكنهم تنفيذه على هؤلاء المستخدمين
الذين لديهم هذه الثقة. على سبيل المثال ، من المنطقي تثبيت ملف
نسخة خاصة من عنيد مع الوضع "rwsr-xr--" ، المستخدم جذر و
رأس التجميع تتبعحيث أعضاء تتبع المجموعة مستخدمين موثوق بهم.
إذا كنت تستخدم هذه الميزة ، فيرجى تذكر تثبيت ملف غير
الإصدار setuid من عنيد لاستخدام الخاسرين العاديين.

استخدم strace64 عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

أوامر لينكس

Ad