نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
KGDB, KDB, GDB اشکال زدایی کرنل لینوکس با استفاده از KGDB KGDB در Raspberry Pi3 پیش نیازها:باید دانش اولیه هسته لینوکس را داشته باشدفرایندهای فضای کاربر را می توان با استفاده از gdb اشکال زدایی کرد. با gdb می توانید
چه می شود اگر بتوانیم از gdb در اجرای کرنل لینوکس استفاده کنیم.
مشکل:
چگونه یک gdb می تواند کرنل در حال اجرا را اشکال زدایی کند زیرا فقط یک فرآیند فضای کاربر است.
راه حل:
معماری مشتری/سرور
برنامههای فضای کاربر را میتوان از راه دور با استفاده از ترکیب gdbserver در ماشین هدف و gdb در ماشین میزبان/ماشین توسعه اشکال زدایی کرد.
هسته لینوکس یک اجرای سرور GDB به نام KGDB دارد. با یک سرویس گیرنده GDB از طریق اتصال شبکه یا پورت سریال
ارتباط برقرار می کنددر این دوره آموزشی خواهیم آموخت:
نحوه تنظیم KGDB
روش های مختلف برای وارد کردن هدف به ماشین توسعه
تنظیم نقاط شکست
چاپ و تنظیم متغیرها
استفاده از یک پورت سریال برای هر دو پیام کیلوگرم و کنسول
دریافت پیامهای هسته در پنجره gdb
اشکالزدایی ماژولهای هسته لینوکس (در درخت، خارج از درخت)
استفاده از اسکریپت های GDB موجود در هسته لینوکس
سرفصل ها و درس ها
مقدمه ای بر KGDB
Introduction to KGDB
-
معرفی
Introduction
-
الزامات سخت افزاری برای اجرای Kgdb
Hardware Requirements for Running Kgdb
-
راه اندازی سخت افزار
Hardware Setup
-
نصب کرنل روی هدف
Installing Kernel on Target
-
کپی کردن کرنل از هدف به ماشین توسعه
Copying Kernel from Target to Development Machine
-
بوت شدن با پشتیبانی gdb
Booting with gdb support
-
اتصال به Target
Connecting to Target
-
غیرفعال کردن تصادفی چیدمان آدرس هسته
Disabling Kernel Address Layout Randomization
-
افزودن نقطه شکست
Adding breakpoint
-
جابجایی به حالت اشکال زدایی
Switching to debugging mode
Kgdb پیشرفته
Advanced Kgdb
-
فعال کردن KGDB در زمان اجرا
Enabling KGDB at runtime
-
حالت TUI
TUI Mode
-
نقاط شکست برای ایجاد و حذف دایرکتوری ها
Breakpoints for creating and deleting directories
-
تعیین نقاط شکست در یک خط خاص
Setting breakpoints at a particular line
-
وقتی کد هسته را تغییر می دهید چه اتفاقی می افتد
What happens when you modify kernel code
-
وقتی از یک پورت سریال برای کنسول و kgdb استفاده می کنید چه اتفاقی می افتد
What happens when you use a single serial port for console and kgdb
-
نماینده-پروکسی
agent-proxy
-
kgdbcon
kgdbcon
-
kgdbreboot
kgdbreboot
-
نقطه شکست برای OOM
Breakpoint for OOM
-
فعال کردن Pretty Print
Enabling Pretty print
-
در Panic چه اتفاقی می افتد
What happens on Panic
-
متغیرهای چاپ
Printing Variables
-
تنظیم متغیرها
Setting Variables
-
اشکال زدایی مشکلات اتصال
Debugging Connection Problems
-
نقطه شکست در proc cmdline
Breakpoint on proc cmdline
-
اشکال زدایی در ماژول های درختی
Debugging In tree modules
-
نقطه شکست در کنترل کننده وقفه
Breakpoint at interrupt handler
-
اسکریپت های GDB
GDB Scripts
-
lx-symbols
lx-symbols
-
lx_current
lx_current
-
رفع اشکال از ماژول های درختی
Debugging out of tree modules
-
اشکال زدایی بخش init و exit ماژول
Debugging init and exit section of module
KGDB در Raspberry Pi3
KGDB on Raspberry Pi3
-
ساخت تصویر با پیکربندی هسته مورد نیاز
Building image with required kernel configuration
-
SDK را بسازید و نصب کنید
Build and install SDK
-
فلش تصویر روی هدف
Flash Image on Target
-
پورت سریال را وصل کنید
Connect Serial Port
-
Agent Proxy را اجرا کنید
Run Agent Proxy
-
از طریق GDB به Raspberry Pi3 متصل شوید
Connect to Raspberry Pi3 over GDB
-
کد منبع فهرست
Listing Source Code
دانلودها
Downloads
نمایش نظرات