تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
إنّ تتبُّع تسلسل استدعاء الدوال البرمجية R8 هو أداة للحصول على تتبُّع تسلسل استدعاء الدوال البرمجية الأصلي من ترميز مُشفَّر.
تتبع تسلسل استدعاء الدوال البرمجية. تتم إعادة إنشاء تتبُّع تسلسل استدعاء الدوال البرمجية من خلال مطابقة أسماء الفئات والأساليب.
في ملف تعيين إلى تعريفاتها الأصلية.
الاستخدام
لتتبُّع عملية تتبُّع تسلسل استدعاء الدوال البرمجية التي تم إخفاء مفاتيح فك تشفيرها، مرِّر ملف الربط إلى retrace:
في حال عدم توفير أي ملف تتبُّع تسلسُل استدعاء الدوال البرمجية في سطر الأوامر، ينتظر تعقب تسلسل استدعاء الدوال البرمجية R8
تتبع تسلسل استدعاء الدوال البرمجية الذي سيدخله المستخدم من خلال الإدخال القياسي. بعد الإدخال،
إنهاء بث الإدخال:
نظاما التشغيل Linux وmacOS: Control+D
نظام التشغيل Windows: Control+Z+Enter
وبعد ذلك، تتم كتابة الناتج الذي تم استرداده إلى الناتج العادي.
الخيارات
يصف الجدول التالي خيارات سطر الأوامر لتتبع R8:
Option
هل هي مطلوبة؟
الوصف
--verbose
لا
لطباعة المزيد من المعلومات، مثل معلَمات الطريقة ونوع إرجاعها.
--info
لا
يضبط مستوى التشخيص على info. لإلقاء نظرة أكثر تعمقًا،
راجع مركز بيانات التشخيص.
--quiet
لا
يقلل هذا الخيار من كمية المعلومات المطبوعة لزيادة التركيز.
--regex <regular_exp>
لا
يؤدي هذا الخيار إلى استبدال التعبير العادي التلقائي لتحليل خطوط تتبُّع تسلسل استدعاء الدوال البرمجية.
على سبيل المثال، فيما يلي تعبير عادي يمكنه تحليل عمليات تتبُّع تسلسل استدعاء الدوال البرمجية الأساسية:
(?:.*? at %c\.%m\(%s(?::%l)?\))|(?:(?:.*?[:"] +)?%c(?::.*)?).
ملاحظات الاستخدام
يستخدم تتبع R8 ملف تعيين تم إنشاؤه لتعيين الفئة المشفَّرة
أسماء الطرق مرة أخرى إلى التعريف الأصلي. لمزيد من المعلومات عن
لتقليص حجم تطبيقك بحيث يمكن استرداده بشكل صحيح، راجع
فك ترميز تتبُّع تسلسل استدعاء الدوال البرمجية مع تشويش
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# R8 retrace is a tool for obtaining the original stack trace from an obfuscated\nstack trace. The stack trace is reconstructed by matching class and method names\nin a mapping file to their original definitions.\n| **Note:** R8 retrace is a standalone tool in version 4.0 of the command-line tools package, released with Android Studio 4.2.\n|\n| To download the command-line tools package with the SDK Manager, see\n| [Update your tools with the\n| SDK Manager](/studio/intro/update#sdk-manager). The SDK Manager installs R8 retrace in\n| `cmdline-tools/`\u003cvar translate=\"no\"\u003eversion\u003c/var\u003e`/bin/`.\n|\n| To download the command-line tools package using the command line, see\n| [`sdkmanager`](/studio/command-line/sdkmanager).\n\nUsage\n-----\n\nTo retrace an obfuscated stack trace, pass the mapping file to `retrace`: \n\n retrace \u003cvar translate=\"no\"\u003e path-to-mapping-file [path-to-stack-trace-file] [options] \u003c/var\u003e\n\nIf no stack trace file is given on the command line, R8 retrace waits for\nthe stack trace to be entered by the user through standard input. After input,\nterminate the input stream:\n\n- **Linux, macOS:** Control+D\n- **Windows:** Control+Z+Enter\n\nThe retraced output is then written to standard output.\n\nOptions\n-------\n\nThe following table describes the command-line options of R8 retrace:\n\n| Option | Required? | Description |\n|---------------------------------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `--verbose` | no | Prints more information, such as method parameters and method return type. |\n| `--info` | no | Sets the diagnostic level to `info`. For a more in-depth look, refer to [DiagnosticsHandler](https://r8.googlesource.com/r8/+/refs/heads/main/src/main/java/com/android/tools/r8/DiagnosticsHandler.java). |\n| `--quiet` | no | Reduces the amount of information printed to increase focus. |\n| `--regex `\u003cvar translate=\"no\"\u003e<regular_exp>\u003c/var\u003e | no | Overwrites the default regular expression for parsing stack trace lines. For example, the following is a regex that can parse basic stack traces: `(?:.*? at %c\\.%m\\(%s(?::%l)?\\))|(?:(?:.*?[:\"] +)?%c(?::.*)?)`. |\n\nUsage notes\n-----------\n\nR8 retrace uses a generated mapping file for mapping obfuscated class and\nmethod names back to the original definition. For more information about\nshrinking your app so that it can be retraced correctly, see\n[Decode an obfuscated stack trace](/studio/build/shrink-code#decode-stack-trace)."]]