آموزش اشکال زدایی هسته لینوکس در دیپ - قسمت 2

Debugging Linux Kernel in Deep - Part 2

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: 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

  • یادداشت Notes

نمایش نظرات

آموزش اشکال زدایی هسته لینوکس در دیپ - قسمت 2
جزییات دوره
3 hours
41
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
921
4.9 از 5
دارد
دارد
دارد
Linux Trainer
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Linux Trainer Linux Trainer

مربی در آموزش آخر هفته لینوکس