شارع
strace هي أداة تشخيصية وتصحيحية وتعليمية لمساحة المستخدم في نظام لينكس . تُستخدم لمراقبة التفاعلات بين العمليات ونواة لينكس والتأثير عليها ، بما في ذلك استدعاءات النظام ، وإرسال الإشارات ، وتغييرات حالة العملية. ويُمكن تشغيل strace بفضل ميزة النواة المعروفة باسم ptrace .
توفر بعض الأنظمة الشبيهة بنظام يونكس أدوات تشخيصية أخرى مشابهة لـ strace، مثل truss.
تاريخ
كُتب برنامج strace في الأصل لنظام التشغيل SunOS بواسطة بول كراننبورغ عام 1991، وفقًا لإشعار حقوق النشر الخاص به، ونُشر في أوائل عام 1992، في المجلد الثالث من comp.sources.sun. احتوى ملف README الأولي على ما يلي: [ 5 ]
strace(1) هو برنامج لتتبع استدعاءات النظام لأنظمة Sun™، يشبه إلى حد كبير برنامج trace(1) الذي توفره Sun. يُعد strace(1) أداة مفيدة لتصحيح أخطاء البرامج التي لا يتوفر لها مصدر، وهو ما يشمل للأسف معظم برامج النظام التي توفرها Sun.
لاحقًا، قام برانكو لانكستر بنقل هذه النسخة إلى لينكس ، وأصدر نسخته في نوفمبر 1992، تلتها النسخة الثانية في عام 1993. [6] [7] قام ريتشارد سلادكي بدمج هذه النسخ المنفصلة من strace في عام 1993، ونقل البرنامج إلى SVR4 وسولاريس في عام 1994 ، [ 8 ] مما أدى إلى إصدار strace 3.0 الذي تم الإعلان عنه في comp.sources.misc في منتصف عام 1994. [ 9 ]
بدأ ويشيرت أكرمان صيانة برنامج strace عام 1996. وخلال فترة إدارته، انتقل تطوير strace إلى نظام CVS ، وتمّ إدخال نسخ منه لأنظمة FreeBSD والعديد من البنى المعمارية على لينكس (بما في ذلك ARM وIA-64 وMIPS وPA-RISC وPowerPC وs390 وSPARC). في عام 2002، نُقلت مسؤولية صيانة strace إلى رولاند ماكغراث. ومنذ ذلك الحين، اكتسب strace دعمًا للعديد من البنى المعمارية الجديدة في لينكس (AMD64 وs390x وSuperH)، ودعمًا ثنائي البنية لبعضها، وتلقّى العديد من الإضافات والتحسينات في مُفكِّكات استدعاءات النظام على لينكس؛ وانتقل تطوير strace إلى نظام git خلال تلك الفترة. ومنذ عام 2009، يتولى ديمتري ليفين صيانة strace بشكل فعّال. وقد اكتسب برنامج strace دعمًا لبنى AArch64 و ARC و AVR32 و Blackfin و Meta و Nios II و OpenSISC 1000 و RISC-V و Tile/TileGx و Xtensa منذ ذلك الوقت.
كان آخر إصدار من strace يحتوي على بعض التعليمات البرمجية (التي يبدو أنها غير مستخدمة) [ 10 ] لأنظمة التشغيل غير لينكس هو الإصدار 4.6، الذي صدر في مارس 2011. [ 11 ] في الإصدار 4.7 من strace، الذي صدر في مايو 2012، [ 12 ] تمت إزالة جميع التعليمات البرمجية غير الخاصة بنظام لينكس؛ [ 13 ] منذ الإصدار 4.13 من strace، [ 14 ] يتبع المشروع جدول إصدارات نواة لينكس، واعتبارًا من الإصدار 5.0، [ 15 ] يتبع نظام ترقيم إصدارات لينكس أيضًا.
في عام 2012، أُضيفت إلى برنامج strace ميزة تتبع المسار وفك تشفير مسار واصف الملف. [ 16 ] وفي أغسطس 2014، صدرت النسخة 4.9 من strace، [ 17 ] [ 18 ] حيث أُضيفت ميزة طباعة تتبعات المكدس. وفي ديسمبر 2016، [ 19 ] [ 20 ] تم تطبيق ميزة حقن أخطاء استدعاءات النظام .
سجل الإصدارات
| إصدار | تاريخ الافراج عنه | تغييرات ملحوظة |
|---|---|---|
| 6.2 | 26 فبراير 2023 [ 21 ] | تم تطبيق آلية لحل مشكلة تداخل أوامر الإدخال/الإخراج الخاصة بالطرفية/الصوت. |
| 6.1 | 12 ديسمبر 2022 [ 22 ] | تحسين فك تشفير statxأوامر syscall وأوامر ioctl الطرفية |
| 6.0 | 29 أكتوبر 2022 [ 23 ] | تحسين فك تشفير أوامر setnssyscall و PTP_*ioctl |
| 5.19 | 12 أغسطس 2022 [ 24 ] | لم يعد يتم تفسير علامة "(محذوف)" لمسارات واصفات الملفات غير المرتبطة كجزء من مسار؛ تم تحسين فك تشفير arch_prctlاستدعاءات io_uring_registerالنظام prctl؛ تم تحسين فك تشفير siginfo_tالبنية |
| 5.18 | 18 يونيو 2022 [ 25 ] | |
| 5.17 | 26 مارس 2022 [ 26 ] | تمت إضافة دعم لاستدعاء نظام جديد set_mempolicy_home_nodeعلى نظام لينكس |
| 5.16 | 10 يناير 2022 [ 27 ] | تمت إضافة دعم لطباعة حالات عدم تطابق سياق SELinux ( --secontext=mismatchخيار)؛ وتمت إضافة دعم لاستدعاء نظام جديد futex_waitvعلى نظام Linux |
| 5.15 | 1 ديسمبر 2021 [ 28 ] | |
| 5.14 | 2 سبتمبر 2021 [ 29 ] | تمت إضافة دعم لفك تشفير الاستدعاءات الجديدة memfd_secretواستدعاءات النظام.quotactl_fd |
| 5.13 | 18 يوليو 2021 [ 30 ] | تم تطبيق دعم واجهة التطبيق الثنائية الموجهة لاستدعاءات النظام على بنية IBM POWER |
| 5.12 | 26 أبريل 2021 [ 31 ] | mount_setattrتمت إضافة دعم لفك تشفير استدعاءات النظام الجديدة |
| 5.11 | 17 فبراير 2021 [ 32 ] | تمت إضافة خيار لإدخال البيانات عند دخول/خروج استدعاء النظام ( ومعلمات الخيار ) ؛ تمت poke_enter=إضافة poke_exit=دعم لفك تشفير --injectاستدعاء epoll_pwait2النظام الجديد؛ تم تنفيذ فك تشفير أوامر ioctl .FS_IOC_FS[GS]ETXATTRFS_IOC{,32}_[GS]ETFLAGSGPIO_*SIOCADDMULTISIOCDELMULTISIOCGIFENCAPSIOCOUTQNSDSIOCSIFENCAPSIOCSIFHWBROADCASTUBI_IOCRPEBUBI_IOCSPEBV4L2_BUF_TYPE_META_CAPTUREV4L2_BUF_TYPE_META_OUTPUTVIDIOC_QUERY_EXT_CTRL |
| 5.10 | 14 ديسمبر 2020 [ 33 ] | يتم دعم تتبع المكدس للبرامج غير الأصلية عند تجميعها باستخدام libdw؛ تمت إضافة دعم لفك process_madviseتشفير استدعاءات النظام |
| 5.9 | 24 سبتمبر 2020 [ 34 ] | تمت إضافة دعم لفك close_rangeتشفير استدعاءات النظام؛ تمت إضافة دعم لفك TEE_*تشفير أوامر الإدخال/الإخراج؛ تم تنفيذ فك تشفير {msg,msq,sem}infoالبنى {msg,msq,sem}id_dsالمستخدمة في أوامر استدعاءات النظام الخاصة بنظام System V IPC. |
| 5.8 | 6 أغسطس 2020 [ 35 ] | تم تغيير قائمة استدعاءات النظام التي تغطيها المجموعة %processلتشمل استدعاءات النظام المرتبطة بدورة حياة العملية: تمت إضافة killو tkillو tgkillو pidfd_send_signalو و وإزالتها؛ تمت إضافة دعم لفك تشفير استدعاءات النظام؛ تمت إضافة دعم لفك تشفير ioctl rt_sigqueueinfoarch_prctlunsharefaccessat2LOOP_CONFIGURE |
| 5.7 | 1 يونيو 2020 [ 36 ] | |
| 5.6 | 7 أبريل 2020 [ 37 ] | تمت إضافة أسماء مستعارة طويلة للخيارات، بالإضافة إلى إمكانية تحديد الخيارات بدقة أكبر عبر -e quiet/ --quietو -e decode-fds/ --decode-fdsو --absolute-timestampsو --relative-timestampsو و --syscall-timesالخيارات؛ وتم تطبيق تحسينات متنوعة على إحصائيات استدعاءات النظام. |
| 5.5 | 6 فبراير 2020 [ 38 ] | |
| 5.4 | 28 نوفمبر 2019 [ 39 ] | |
| 5.3 | 25 سبتمبر 2019 [ 40 ] | |
| 5.2 | 12 يوليو 2019 [ 41 ] | |
| 5.1 | 22 مايو 2019 [ 42 ] | |
| 5.0 | 19 مارس 2019 [ 43 ] | |
| 4.26 | 26 ديسمبر 2018 [ 44 ] | |
| 4.25 | 30 أكتوبر 2018 [ 45 ] | |
| 4.24 | 14 أغسطس 2018 [ 46 ] | |
| 4.23 | 14 يونيو 2018 [ 47 ] | |
| 4.22 | 5 أبريل 2018 [ 48 ] | |
| 4.21 | 13 فبراير 2018 [ 49 ] | |
| 4.20 | 13 نوفمبر 2017 [ 50 ] | |
| 4.19 | 5 سبتمبر 2017 [ 51 ] | |
| 4.18 | 5 يوليو 2017 [ 52 ] | |
| 4.17 | 24 مايو 2017 [ 53 ] | |
| 4.16 | 14 فبراير 2017 [ 54 ] | |
| 4.15 | 14 ديسمبر 2016 [ 55 ] | |
| 4.14 | 4 أكتوبر 2016 [ 56 ] | |
| 4.13 | 26 يوليو 2016 [ 57 ] | |
| 4.12 | 31 مايو 2016 [ 58 ] | |
| 4.11 | 21 ديسمبر 2015 [ 59 ] | |
| 4.10 | 6 مارس 2015 [ 60 ] | |
| 4.9 | 15 أغسطس 2014 [ 61 ] | |
| 4.8 | 3 يونيو 2013 [ 62 ] | |
| 4.7 | 2 مايو 2012 [ 63 ] | تمت إزالة جميع التعليمات البرمجية غير الخاصة بنظام لينكس |
| 4.6 | 15 مارس 2011 [ 64 ] | |
| 4.5.20 | 13 أبريل 2010 | تمت إضافة دعم لاستدعاءات النظام الجديدة inotify_init1( perf_event_opensyscalls ) preadvعلى نظام لينكس؛ وتمت إضافة خيار يجمع بين المخرجات العادية والملخصة؛ كما تمت إضافة دعم لبنية Tile على نظام لينكس .pwritevrecvmmsgrt_tgsigqueueinfo-C |
| 4.5.19 | 21 أكتوبر 2009 | انتقلت مسؤولية الصيانة إلى ديمتري ليفين؛ وينتهي برنامج strace الآن بنفس رمز/إشارة الخروج الخاصة بالبرنامج المُتتبَّع (إذا تم تشغيله بواسطة strace)؛ تمت إضافة دعم لنداءات النظام الجديدة على نظام Linux accept4؛ تمت إضافة دعم معمارية dup3Blackfin epoll_create1و AVR32 وCRIS على نظام Linux eventfd2inotify_init1pipe2signalfd4 |
| 4.5.18 | 28 أغسطس 2008 | تمت إضافة دعم subpage_protلاستدعاءات النظام الخاصة بمعالجات POWER على نظام Linux |
| 4.5.17 | 21 يوليو 2008 | -Fتم إيقاف استخدام هذا العلم، حيث -fتوجد آثار له vforkعلى نظام لينكس منذ فترة طويلة. |
| 4.5.16 | 3 أغسطس 2007 | |
| 4.5.15 | 16 يناير 2007 | تمت إضافة دعم لـ new *atو inotify*و pselect6و ppollو unshareعلى نظام لينكس |
| 4.5.14 | 16 يناير 2007 | يمكن تحديد رقم استدعاء النظام في -eالمواصفات. |
| 4.5.13 | 3 أغسطس 2005 | أضف descدعم مجموعات استدعاءات النظام إلى-e trace= |
| 4.5.12 | 8 يونيو 2005 | |
| 4.5.11 | 22 مارس 2005 | |
| 4.5.10 | 13 مارس 2005 | |
| 4.5.9 | 4 فبراير 2004 | |
| 4.5.8 | 19 أكتوبر 2004 | فك تشفير mbindو [sg]et_mempolicyو waitidو fadvise64{,_64}و epoll_*واستدعاءات النظام، و RTC_*ioctls على نظام لينكس |
| 4.5.7 | 31 أغسطس 2004 | |
| 4.5.6 | 12 يوليو 2004 | تمت إضافة دعم لبنية SPARC ذات 64 بت على نظام Linux. |
| 4.5.5 | 27 يونيو 2004 | |
| 4.5.4 | 3 يونيو 2004 | -pيتم ربطها بجميع خيوط NPTL على نظام Linux فقط عند -fتوفيرها |
| 4.5.3 | 16 أبريل 2004 | تمت إضافة دعم mq_*لاستدعاءات النظام على نظام لينكس؛ -pالآن يتم ربطها بجميع سلاسل NPTL على نظام لينكس |
| 4.5.2 | 1 مارس 2004 | |
| 4.5.1 | 13 نوفمبر 2003 | |
| 4.5 | 24 سبتمبر 2003 | تم نقل مسؤولية الصيانة إلى رولاند ماكغراث؛ تمت إضافة دعم x86-64 على نظام لينكس مع دعم تتبع عمليات التوافق؛ تمت إضافة دعم معمارية SH وSH64 على نظام لينكس؛ -Eتمت إضافة خيار |
| 4.4 | 19 أغسطس 2001 | |
| 4.3.1 | 7 أبريل 2001 | |
| 4.3 | 1 أبريل 2001 | تمت إضافة دعم لبنيتي HP PA/RISC و IA-64 على نظام Linux؛ وتمت إضافة دعم لاستدعاءات النظام UID/GID ذات 32 بت على نظام Linux؛ وتمت إضافة دعم لنظام FreeBSD على معالجات x86 |
| 4.2 | 21 يناير 2000 | تمت إضافة دعم لبنية IBM Z على نظام لينكس |
| 4.1 | 26 نوفمبر 1999 | تمت إضافة دعم لبنية MIPS على نظام Linux؛ strace-graphتمت إضافة البرنامج النصي |
| 4.0.1 | 25 يوليو 1999 | |
| 4.0 | 9 يوليو 1999 | تم إصلاح مشكلة فك التشفير 64 بت struct statعلى نظام لينكس؛ تحديثات Irix 64؛ تحديثات Solaris |
| 3.99.1 | 9 يونيو 1999 | |
| 3.99 | 27 أبريل 1999 | المشرف الجديد هو ويشيرت أكرمان؛ تمت إضافة دعم لبنى IBM POWER وSPARC وARM على نظام Linux؛ تمت إضافة دعم للعديد من استدعاءات النظام على نظام Linux |
| 3.1 | 1 يونيو 1996 | تمت إضافة دعم لأنظمة التشغيل Irix وm68k وDEC Alpha على نظام Linux؛ وتمت إضافة دعم -o!لصيغة الخيارات؛ وتمت إضافة دعم لفئات استدعاءات النظام ( file, process)؛ وتمت إضافة دعم لاستدعاءات نظام IPC على نظام التشغيل Sun OS |
| 3.0 | 9 يوليو 1994 [ 65 ] | الإصدار الأولي متعدد المنصات من تطوير ريتشارد سلادكي. يتضمن دعمًا لـ -x، -q، -e( trace، abbrev، verbose، ، raw، signal، readو writeالمحددات)، -c، -iالخيارات |
الاستخدام والميزات
يُستخدم الأمر strace عادةً لتشغيل برنامج، حيث يعرض قائمةً بالاستدعاءات النظامية التي يُجريها البرنامج. يُفيد هذا الأمر في حال تعطل البرنامج باستمرار، أو إذا لم يعمل كما هو متوقع؛ فعلى سبيل المثال، قد يكشف استخدام strace أن البرنامج يحاول الوصول إلى ملف غير موجود أو لا يمكن قراءته.
يتمثل أحد التطبيقات البديلة في استخدام هذه -pالعلامة لربطها بعملية قيد التشغيل. وهذا مفيد إذا توقفت عملية ما عن الاستجابة، وقد يكشف، على سبيل المثال، أن العملية عالقة أثناء محاولتها إنشاء اتصال بالشبكة.
من بين الميزات الأخرى، يسمح برنامج strace بما يلي:
- تحديد عامل تصفية لأسماء استدعاءات النظام التي يجب تتبعها (عبر
-e trace=الخيار): بالاسم، مثل clone، fork، vfork ؛ باستخدام إحدى المجموعات المعرفة مسبقًا، مثل %ipc أو %file ؛ أو (منذ strace 4.17) باستخدام صيغة التعبير النمطي، مثل .-e trace=/clock_.* - تحديد قائمة بالمسارات المراد تتبعها (
-P /etc/ld.so.cacheعلى سبيل المثال). - تحديد قائمة بوصفات الملفات التي يجب تفريغ عمليات الإدخال/الإخراج الخاصة بها (
-e read=والخيارات-e write=). - حساب وقت تنفيذ استدعاء النظام وعدد (
-T,-c,-C,-wوالخيارات؛-Uيتيح الخيار طباعة معلومات إضافية، مثل الحد الأدنى والحد الأقصى لوقت تنفيذ استدعاء النظام). - طباعة الطوابع الزمنية النسبية أو المطلقة (
-tوالخيارات-r). - التلاعب باستدعاءات النظام التي يتم تنفيذها ( خيار): تعديل الإرجاع ( ؛ منذ strace 4.16) ورمز الخطأ ( ؛ منذ strace 4.15) لاستدعاءات النظام المحددة، وحقن الإشارات ( ؛ منذ strace 4.16)، والتأخيرات ( و ؛ منذ strace 4.22)، وتعديل البيانات التي تشير إليها وسائط استدعاء النظام ( و ؛ منذ strace 5.11) عند تنفيذها.
-e inject=syscall specification:tampering specification:retval=:error=:signal=:delay_enter=:delay_exit=:poke_enter=:poke_exit= - استخراج معلومات حول واصفات الملفات (بما في ذلك المقابس،
-yالخيار؛-yyيوفر الخيار بعض المعلومات الإضافية، مثل عناوين نقاط النهاية للمقابس، والمسارات، وأرقام الأجهزة الرئيسية/الثانوية للملفات). - طباعة تتبعات المكدس، بما في ذلك (منذ strace 4.21) فك تشفير الرموز (
-kخيار). - التصفية حسب حالة إرجاع استدعاء النظام (
-e status=خيار؛ منذ strace 5.2 [ ملاحظة 3 ] ). - قم بترجمة معرفات الخيوط والعمليات ومجموعات العمليات والجلسات التي تظهر في التتبع إلى مساحة اسم PID الخاصة بـ strace (
--pidns-translationخيار؛ منذ strace 5.9). - فك تشفير معلومات سياق SELinux المرتبطة بالعمليات والملفات والوصفات (
--secontextخيار؛ منذ strace 5.12).
يدعم strace فك تشفير وسائط بعض فئات أوامر ioctl ، مثل BTRFS_* و V4L2_* و DM_* و NSFS_* و MEM* و EVIO* و KVM_* والعديد من الأوامر الأخرى؛ كما يدعم فك تشفير بروتوكولات netlink المختلفة .
بما أن أداة strace لا تعرض سوى تفاصيل استدعاءات النظام، فلا يمكن استخدامها لاكتشاف العديد من المشاكل التي يمكن لمصحح الأخطاء البرمجية مثل GNU Debugger (gdb) استخدامها. ومع ذلك، فهي أسهل استخدامًا من مصحح الأخطاء البرمجية، وتُعد أداةً بالغة الأهمية لمسؤولي النظام. كما يستخدمها الباحثون لإنشاء آثار استدعاءات النظام لإعادة تشغيلها لاحقًا . [ 66 ] [ 67 ] [ 68 ]
أمثلة
فيما يلي مثال على المخرجات النموذجية للأمر strace:
user@server:~$ strace ls ... open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) getdents64(3, /* 18 entries */, 4096) = 496 getdents64(3, /* 0 entries */, 4096) = 0 close(3) = 0 fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2c000 write(1, "autofs\nbackups\ncache\nflexlm\ngames"..., 86autofsAالمقطع أعلاه ليس سوى جزء صغير من مخرجات أداة strace عند تشغيلها باستخدام الأمر ' ls '. يوضح هذا المقطع فتح مجلد العمل الحالي، وفحصه، واسترجاع محتوياته. ثم تُكتب قائمة أسماء الملفات الناتجة إلى المخرج القياسي.
أدوات مماثلة
تتضمن أنظمة التشغيل المختلفة أدوات قياس أخرى مماثلة أو ذات صلة ، توفر ميزات مشابهة أو أكثر تطورًا؛ وقد تستخدم بعض هذه الأدوات (على الرغم من استخدامها نفس الاسم أو اسمًا مشابهًا) آليات عمل مختلفة تمامًا، مما ينتج عنه مجموعات ميزات أو نتائج مختلفة. وتشمل هذه الأدوات ما يلي:
- يحتوي نظام لينكس على ltrace الذي يمكنه تتبع استدعاءات المكتبة والنظام، و xtrace الذي يمكنه تتبع برامج نظام X Window ، [ 69 ] SystemTap و perf و trace-cmd و KernelShark التي توسع ftrace .
- يوفر نظام AIX الأمر truss
- يوفر نظام التشغيل HP-UX أمر Tusc
- يحتوي Solaris / Illumos على truss و DTrace
- يوفر نظام UnixWare الأمر truss
- يوفر نظام FreeBSD الأمر truss و ktrace و DTrace
- يوفر نظام NetBSD برنامجي ktrace و DTrace
- يستخدم نظام OpenBSD برنامجي ktrace و kdump
- يوفر نظام macOS برنامج ktrace (الإصدار 10.4 والإصدارات الأقدم)، وبرنامج DTrace (من نظام Solaris) وبرنامج dtruss المرتبط به في الإصدار 10.5 والإصدارات الأحدث. [ 70 ]
- يحتوي نظام التشغيل Microsoft Windows على أداة مساعدة مماثلة تسمى StraceNT، كتبها Pankaj Garg، [ 71 ] وأداة مساعدة مماثلة تعتمد على واجهة المستخدم الرسومية تسمى Process Monitor ، طورتها Sysinternals .
انظر أيضاً
ملحوظات
- ↑ ومع ذلك، يتم فك تشفير رسائل خطأ النظام وفقًا للغة الحالية منذ الإصدار 4.22 من strace. [ 3 ]
- ↑ مجموعة الاختبارات مرخصة بموجب رخصة جنو العمومية الإصدار 2.0+ .
- ↑ تمت إضافة اختصارها لعرض المكالمات الناجحة فقط،
-zالخيار، في الأصل في strace 4.5، ولكن لم يتم توثيقها أبدًا لأنها لم تكن تعمل بشكل صحيح.
مراجع
- ↑ "الإصدار 7.1" . 15 يونيو 2026. تم الاطلاع عليه في 16 يونيو 2026 .
- ↑ "مشروع strace مفتوح المصدر على Open Hub" . Openhub.net . تم الاطلاع عليه بتاريخ 23-11-2021 .
- ↑ ديمتري ف. ليفين (2018-04-01). " [ تحديث ] إضافة دعم التدويل" (قائمة بريدية) . تم الاطلاع عليه بتاريخ 2021-09-02 .
- ↑ ديمتري ف. ليفين (15 ديسمبر 2018). "الجزء الأول: تغيير ترخيص strace إلى ترخيص حقوق النشر المفتوحة" (قائمة بريدية) . تم الاطلاع عليه بتاريخ 2 سبتمبر 2021 .
- ↑ بول كرانينبورغ (2 مارس 1992). "ستراس - أداة تتبع بديلة لاستدعاءات النظام" . مجموعة الأخبار : comp.sources.sun .
- ↑ برانكو لانكستر (5 نوفمبر 1992). "أول إصدار لنظام لينكس من strace" .
- ^ برانكو لانكستر (18 يونيو 1993). "إصدار Linux الثاني من strace" .
- ^ "ستراس" . manned.org. 21 يونيو 1994.
- ↑ "فهرس SUNET لـ /pub/usenet/ftp.uu.net/comp.sources.misc/volume43/strace" . مؤرشف من الأصل بتاريخ 11 سبتمبر 2007. تم الاطلاع عليه بتاريخ 14 يناير 2015 .
- ↑ دينيس فلاسينكو (7 فبراير 2012). "ماذا عن إزالة التعليمات البرمجية غير الخاصة بنظام لينكس؟" .
- ↑ ديمتري ف. ليفين (16 مارس 2011). "تم إصدار strace 4.6" .
- ↑ ديمتري ف. ليفين (2 مايو 2012). "تم إصدار strace 4.7" .
- ↑ ديمتري ف. ليفين (20 أبريل 2012). "تغييرات جديرة بالذكر في الإصدار 4.7" .
- ↑ ديمتري ف. ليفين (4 أكتوبر 2016). "تم إصدار strace 4.14" .
- ↑ ديمتري ف. ليفين (19 مارس 2019). "تم إصدار strace 5.0" .
- ↑ ديمتري ف. ليفين (1 مايو 2012). "تغييرات جديرة بالذكر في الإصدار 4.7" . جيت هاب .
- ↑ ديمتري ف. ليفين (15 أغسطس 2014). "تم إصدار strace 4.9" .
- ↑ ديمتري ف. ليفين (15 أغسطس 2014). "تغييرات جديرة بالذكر في الإصدار 4.9" . جيت هاب .
- ↑ ديمتري ف. ليفين (14 ديسمبر 2016). "تم إصدار strace 4.15" .
- ↑ ديمتري ف. ليفين (14 ديسمبر 2016). "تغييرات جديرة بالذكر في الإصدار 4.15" . جيت هاب .
- ↑ ديمتري ف. ليفين (2023-02-26). "تم إصدار strace 6.2" .
- ↑ ديمتري ف. ليفين (2022-12-12). "تم إصدار strace 6.1" .
- ↑ ديمتري ف. ليفين (2022-10-29). "تم إصدار strace 6.0" .
- ↑ ديمتري ف. ليفين (2022-08-12). "تم إصدار strace 5.19" .
- ↑ ديمتري ف. ليفين (2022-06-18). "تم إصدار strace 5.18" .
- ↑ ديمتري ف. ليفين (2022-03-27). "تم إصدار strace 5.17" .
- ↑ ديمتري ف. ليفين (2022-01-10). "تم إصدار strace 5.16" .
- ↑ ديمتري ف. ليفين (2021-12-01). "تم إصدار strace 5.15" .
- ↑ ديمتري ف. ليفين (2021-09-02). "تم إصدار strace 5.14" .
- ↑ ديمتري ف. ليفين (2021-07-18). "تم إصدار strace 5.13" .
- ↑ ديمتري ف. ليفين (2021-04-26). "تم إصدار strace 5.12" .
- ↑ ديمتري ف. ليفين (2021-02-17). "إصدار strace 5.11" .
- ↑ ديمتري ف. ليفين (2020-12-14). "إصدار strace 5.10" .
- ↑ ديمتري ف. ليفين (2020-09-24). "تم إصدار strace 5.9" .
- ↑ ديمتري ف. ليفين (2020-08-06). "إصدار strace 5.8" .
- ↑ ديمتري ف. ليفين (2020-06-01). "إصدار strace 5.7" .
- ↑ ديمتري ف. ليفين (2020-04-07). "إصدار strace 5.6" .
- ↑ ديمتري ف. ليفين (2020-02-06). "إصدار strace 5.5" .
- ↑ ديمتري ف. ليفين (2019-11-28). "إصدار strace 5.4" .
- ↑ ديمتري ف. ليفين (2019-09-25). "إصدار strace 5.3" .
- ↑ ديمتري ف. ليفين (2019-07-12). "إصدار strace 5.2" .
- ↑ ديمتري ف. ليفين (2019-05-22). "إصدار strace 5.1" .
- ↑ ديمتري ف. ليفين (2019-03-19). "تم إصدار strace 5.0" .
- ↑ ديمتري ف. ليفين (2018-12-26). "تم إصدار strace 4.26" .
- ↑ ديمتري ف. ليفين (2018-10-30). "تم إصدار strace 4.25" .
- ↑ ديمتري ف. ليفين (2018-08-14). "تم إصدار strace 4.24" .
- ↑ ديمتري ف. ليفين (2018-06-14). "تم إصدار strace 4.23" .
- ↑ ديمتري ف. ليفين (2018-04-05). "تم إصدار strace 4.22" .
- ↑ ديمتري ف. ليفين (2018-02-13). "تم إصدار strace 4.21" .
- ↑ ديمتري ف. ليفين (2017-11-13). "تم إصدار strace 4.20" .
- ↑ ديمتري ف. ليفين (2017-09-05). "تم إصدار strace 4.19" .
- ↑ ديمتري ف. ليفين (2017-07-05). "تم إصدار strace 4.18" .
- ↑ ديمتري ف. ليفين (2017-05-24). "تم إصدار strace 4.17" .
- ↑ ديمتري ف. ليفين (2017-02-14). "تم إصدار strace 4.16" .
- ↑ ديمتري ف. ليفين (2016-12-14). "تم إصدار strace 4.15" .
- ↑ ديمتري ف. ليفين (2016-10-04). "تم إصدار strace 4.14" .
- ↑ ديمتري ف. ليفين (2016-07-26). "تم إصدار strace 4.13" .
- ↑ ديمتري ف. ليفين (2016-05-31). "تم إصدار strace 4.12" .
- ↑ ديمتري ف. ليفين (2015-12-21). "تم إصدار strace 4.11" .
- ↑ ديمتري ف. ليفين (2015-03-06). "تم إصدار strace 4.10" .
- ↑ ديمتري ف. ليفين (2014-08-15). "تم إصدار strace 4.9" .
- ↑ ديمتري ف. ليفين (2013-06-03). "تم إصدار strace 4.8" .
- ↑ ديمتري ف. ليفين (2012-05-02). "تم إصدار strace 4.7" .
- ↑ ديمتري ف. ليفين (2011-03-15). "تم إصدار strace 4.6" .
- ↑ ريك سلادكي (994-07-09). "v43i075: strace - أداة تتبع استدعاءات النظام لأنظمة sunos و linux و svr4 و solaris2، الجزء 01/10" .
- ↑ هوركي، جيري (2013). "محلل أداء الإدخال/الإخراج ومشغل آثار الإدخال/الإخراج ioapps" . تم الاسترجاع في 16-09-2013 .
- ↑ ووترلاند، آموس (2007). "نظام إعادة التشغيل يستدعي برنامج إعادة التشغيل" . مؤرشف من الأصل بتاريخ 1 أبريل 2016. تم الاطلاع عليه بتاريخ 16 سبتمبر 2013 .
- ↑ بيرتون، أرييل (1998). "توصيف عبء العمل باستخدام تتبع استدعاءات النظام وإعادة تنفيذها بشكل خفيف الوزن" (ملف PDF) . تم الاطلاع عليه بتاريخ 16-09-2013 .
- ↑ "XTrace - تتبع اتصالات بروتوكول X" . xtrace.alioth.debian.org . مؤرشف من الأصل بتاريخ 2014-08-05 . تم الاطلاع عليه بتاريخ 2014-08-12 .
- ↑ "dtrace(1) صفحة دليل نظام التشغيل Mac OS X" . Developer.apple.com . تم الاطلاع عليه بتاريخ 23-07-2014 .
- ↑ "IntellectualHeaven - Strace For Windows" . thoughtfulheaven.com . مؤرشف من الأصل في 5 مارس 2016. تم الاطلاع عليه في 29 يناير 2015 .
روابط خارجية
- صفحة مشروع ستراس
- صفحة الدليل
- مقال من مراجعات نظام التشغيل حول strace
- "تتبع استدعاءات النظام باستخدام strace" ، محاضرة تتضمن نظرة عامة على ميزات strace واستخدامها، قدمها مايكل كيريسك في مؤتمر NDC TechTown 2018
- "ستراس الحديثة" ( المصدر )، محاضرة تتضمن نظرة عامة على ميزات ستراس، قدمها ديمتري ليفين في مؤتمر DevConf.cz 2019
- برامج سطر الأوامر
- أدوات تصحيح الأخطاء
- برنامج مجاني مكتوب بلغة C
- برنامج يستخدم رخصة جنو العمومية الصغرى
- أدوات برمجة يونكس
