از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
هسته لینوکس مکانیسم های زیادی را برای تشخیص مسائل از جمله ردیابی ، BPF و پروفایل فراهم می کند. بیشتر این تکنیک ها در هسته باینری تصویر هسته عمومی (GKI) موجود هستند. هنگام توسعه محصولات، ابزارهای بسیار بیشتری وجود دارند که در فرآیندهای توسعه یا یکپارچه سازی ادغام می شوند، که برخی از آنها به ویژگی های هسته نیاز دارند که بخشی از GKI نیستند. مانند بسیاری از ویژگیهای GKI، ما شما را تشویق میکنیم که با نگهدارندههای بالادستی برای افزودن این ویژگیها به لینوکس کار کنید.
ویژگی های اشکال زدایی پایین دست در ماژول های فروشنده
ویژگیهای اشکالزدایی از نظر دامنه مشابه با انواع دیگر ویژگیها هستند و باید همان فرآیندهایی را که در وصلههای مخصوص Android توضیح داده شده است دنبال کنند.
ویژگی های سرزده اشکال زدایی پایین دست
برخی از ویژگیهای مفید اشکال زدایی به گزینههای پیکربندی خاصی نیاز دارند که در GKI غیرفعال هستند و بنابراین نیاز به ساخت ویژه هسته دارند. این ویژگیها ممکن است به دلیل جریمههای عملکرد یا نامناسب بودن برای استفاده در تولید غیرفعال شوند، اما برای اشکالزدایی انواع خاصی از مسائل ضروری هستند. نمونههایی از این ابزارها عبارتند از ضدعفونیکنندهها (KASAN، UBSAN)، debugfs و سایر ویژگیها و ابزارهای خاص شریک.
این به شما بستگی دارد که تعیین کنید چگونه هستههای دارای اشکال زدایی خاص را که بر رابط ماژول هسته (KMI) تأثیر میگذارند، مدیریت کنید. یک روش معمول این است که یک اشکالزدایی داخلی ایجاد کنید و مصنوعات حاصل را به مشتریان داخلی یا شرکای توسعه پاییندستی تحویل دهید. توصیه میکنیم به جداسازی چنین ویژگیهایی در ماژولها ادامه دهید، زیرا ویژگیهای اشکالزدایی خاص شریک را نمیتوان در هسته GKI فراتر از دستورالعملهای توصیفشده در وصلههای خاص Android پذیرفت.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Debug features\n\nThe Linux kernel provides many mechanisms to diagnose issues including\n[tracing](https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline/Documentation/trace/),\n[BPF](https://lwn.net/Articles/818714/), and\n[profiling](https://perf.wiki.kernel.org/index.php/Tutorial). Most\nof these techniques are available in the Generic Kernel Image (GKI) binary\nkernel. When developing products, there are many more tools that are integrated\ninto the development or integration processes, some of which require kernel\nfeatures that aren't part of GKI. As with most GKI features, we encourage you to\nwork with upstream maintainers to add these features to Linux.\n| **Note:** Kernel debugging tools and techniques are beyond the scope of this document.\n\nDownstream debug features in vendor modules\n-------------------------------------------\n\nDebugging features are similar in scope to other kinds of features and must\nfollow the same processes as described in\n[Android-specific patches](/docs/core/architecture/kernel/kernel-code#android-specific-patches).\n\nIntrusive downstream debug features\n-----------------------------------\n\nSome useful debug features require special configuration options that are\ndisabled in GKI and therefore require a special build of the kernel. These\nfeatures might be disabled due to performance penalties or unsuitability for\nproduction use, but are indispensable for debugging certain\ntypes of issues. Examples of such tools include sanitizers (KASAN, UBSAN),\n`debugfs`, and other partner-specific features and tools.\n\nIt's up to you to determine how you manage special debug-enabled kernels\nthat impact the Kernel Module Interface (KMI). A common practice is to have an\ninternal debug build and deliver the resulting artifacts to internal customers\nor downstream development partners. We recommend continuing to isolate such\nfeatures into modules as partner-specific debug features can't be accepted into\nthe GKI kernel beyond the guidelines described in\n[Android-specific patches](/docs/core/architecture/kernel/kernel-code#android-specific-patches)."]]