مجله علمی تفریحی بیبیس
0

دانلود کتاب ساختن دیباگر

  • عنوان کتاب: Building a Debugger
  • نویسنده: Sy Brand
  • حوزه: دیباگ
  • سال انتشار: 2025
  • تعداد صفحه: 738
  • زبان اصلی: انگلیسی
  • نوع فایل: pdf
  • حجم فایل: 11.8 مگابایت

همه چیز از یک پروانه شروع شد. در سال 1947، تیمی در دانشگاه هاروارد بر روی کامپیوتر الکترومکانیکی هاروارد Mark II کار می کردند. این دستگاه بزرگ بیش از 20 تن متریک وزن داشت و بیش از 370 متر مربع از زمین را اشغال می کرد. در 9 سپتامبر، تیم در حال تشخیص مشکل در Mark II بود و آن را به یک منبع نسبتاً غیرعادی ردیابی کرد. یک شب پره در یکی از رله های الکترومغناطیسی که دستگاه بر روی آن قرار داشت گیر کرده بود و باعث اختلال در عملکرد آن شد. بعد از اینکه جانور کوچک را حذف کردند، آن را روی یک دفترچه ثبت کردند که عبارت «اولین مورد واقعی از پیدا شدن یک حشره» را روی آن نوشته بودند. در حالی که دانشمندان کامپیوتر قبل از این حادثه از اصطلاح “اشکال” استفاده می کردند، مرگ پروانه فقیر به استفاده گسترده از آن در فرهنگ لغت کمک کرد. با این حال، اغلب اوقات، ما به دنبال اشکالات واقعی در سیستم های خود نیستیم، بنابراین برای شناسایی مشکلات به پیچ گوشتی و ذره بین نیاز نداریم. در عوض، ما به برنامه ای نیاز داریم که بتواند وضعیت برنامه متفاوتی را که روی سیستم ما اجرا می شود، ردیابی، دستکاری و تجسم کند. به چنین برنامه ای دیباگر می گویند. توسعه دهندگان معمولاً از اشکال زدا برای کارهایی مانند ردیابی جریان کنترل کد خود در حین اجرا، بازرسی مقادیر متغیرها در نقاط مختلف اجرا، توقف برنامه در مکان های از پیش تعیین شده و اجرای توابع در داخل فرآیند در حال اجرا استفاده می کنند. در این کتاب، ما به ویژه با اشکال‌زدایی برای کدهای کامپایل‌شده که مستقیماً روی واحد پردازش مرکزی شما (CPU) اجرا می‌شود، که به زبانی مانند C، C++، Rust یا FORTRAN نوشته شده‌اند، نگران هستیم. اشکال‌زدای این برنامه‌ها باید مستقیماً با سیستم عامل و سخت‌افزار زیربنایی ارتباط برقرار کنند، که می‌تواند ما را به بینش عمیقی در مورد نحوه عملکرد رایانه‌ها برساند. در طول این کتاب، ما یک دیباگر خط فرمان برای کدهای بومی خواهیم ساخت. من دیباگر sdb را برای Sy’s Debugger می نامم، اما شما می توانید مال خود را هر چه دوست دارید صدا بزنید. (با این حال، ممکن است بخواهید از تضاد با اشکال‌زدای موجود مانند GDB و LLDB اجتناب کنید.) وقتی شروع می‌کنیم، پروژه از یک فایل اجرایی به نام sdb تشکیل می‌شود که کاربر می‌تواند در خط فرمان با آن تعامل داشته باشد. همانطور که پیشرفت می کنیم، اکثر اشکال زدا را به عنوان یک کتابخانه، libsdb می سازیم، سپس یک درایور خط فرمان را می نویسیم که از عملکرد آن استفاده می کند. این طراحی نوشتن تست‌های خودکار برای کد را آسان‌تر می‌کند و شما را قادر می‌سازد برنامه‌هایی را توسعه دهید که به صورت برنامه‌نویسی با دیباگر تعامل دارند.

It all started with a moth. In 1947, a team at Harvard University was working on the Harvard Mark II electromechanical computer. This large machine weighed over 20 metric tons and occupied more than 370m2 of floor space. On September 9, the team was diagnosing an issue with the Mark II and traced it back to a rather unusual source; a moth had gotten stuck in one of the electromagnetic relays on which the machine was based, causing it to malfunction. After they removed the minibeast, they taped it to a log book with the phrase “First actual case of a bug being found.” While computer scientists used the term “bug” before this incident, the poor moth’s demise contributed to its widespread use in the lexicon. Most of the time, however, we’re not looking for actual bugs in our systems, so we don’t require a screwdriver and magnifying glass to identify issues. Instead, we need a program that can trace, manipulate, and visualize the state of a different program running on our system. Such a program is called a debugger. Developers typically use debuggers for tasks such as tracing the control flow of their code as it runs, inspecting the values of variables at various points of execution, halting the program at pre-determined locations, and executing functions inside the running process. In this book, we’re particularly concerned with debuggers for compiled code that runs directly on your central processing unit (CPU), written in a language like C, C++, Rust, or FORTRAN. Debuggers for these programs need to interface directly with the operating system and the underlying hardware, which can lead us to some deep insights into how computers actually work. Over the course of this book, we’ll build a command line debugger for native code. I’ll call the debugger sdb, for Sy’s Debugger, but you can call yours whatever you like. (You might want to avoid conflicting with existing debuggers like GDB and LLDB, however.) When we begin, the project will consist of a single executable, sdb, which the user can interact with on the command line. As we progress, we’ll build the majority of the debugger as a library, libsdb, then author a command line driver that uses its functionality. This design will make it easier to write automated tests for the code and enable you to develop applications that interact with the debugger programmatically.

این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:

Download: Building a Debugger

نظرات کاربران

  •  چنانچه دیدگاه شما توهین آمیز باشد تایید نخواهد شد.
  •  چنانچه دیدگاه شما جنبه تبلیغاتی داشته باشد تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بیشتر بخوانید

آموزش نقاشی سیاه قلم کانال واتساپ